On Fri, Nov 28, 2014 at 5:54 PM, Ewald <ew...@yellowcouch.org> wrote: > Hi, > > Take the following function prototype (in {$mode objfpc}{$H+} for the > record): > > Function SomeFunction(const Data: PChar; const Len: LongWord): > String; cdecl; public; > > Looking at the dissasembly of this function, I see that is actually has > three arguments. It looks more like this from an assembler perspective: > > Function SomeFunction(HiddenArgument: Pointer; const Data: PChar; > const Len: LongWord): String; cdecl; public; > > Which is, well, quite fascinating really. What is it doing there? I > suspect it has something to do with the result type of the function, > being a string? > > Can anybody shed some light on this? > > -- > Ewald
Are you sure it's not the result that is passed in the first parameter? http://en.wikipedia.org/wiki/X86_calling_conventions#cdecl Best regards, Flávio _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal