<p>Am 29.01.2017 23:33 schrieb "Lars" <<a href="mailto:noreply@z505.com">noreply@z505.com</a>>:<br>
><br>
> On Sun, January 29, 2017 6:04 am, José Mejuto wrote:<br>
> > El 28/01/2017 a las 13:32, fredvs escribió:<br>
> ><br>
> ><br>
> >> TOpusFileCallbacks = record<br>
> >> read: op_read_func;<br>
> >> seek: op_seek_func;<br>
> >> tell: op_tell_func;<br>
> >> close: op_close_func;<br>
> >> end;<br>
> >><br>
> >> This does not work:<br>
> >><br>
> >><br>
> >> HandleOP := op_test_callbacks(pointer(InPipe),op_callbacks,<br>
> >> BufferURL[0],<br>
> >> PipeBufferSize, err);<br>
> >><br>
> >><br>
> ><br>
> > Hello,<br>
> ><br>
> ><br>
> > As you need to use records you should specify {$PACKRECORDS C} or you<br>
> > could get a different record layout than C expects.<br>
> ><br>
> > --<br>
><br>
> Doesn't some C compilers pack records differently, so packrecords is only<br>
> compatiable with GNU c compiler but some other compiler could do it<br>
> differently? Sorry I don't know</p>
<p>FPC adheres to the system's ABI. So packrecords c might result in different records on e.g. Linux or Windows or even the same OS on different platforms.<br>
So as long as the used C compiler adheres to the ABI as well, there shouldn't be any problem.</p>
<p>Regards,<br>
Sven</p>