On 21/06/15 23:08, Jonas Maebe wrote:
On 21/06/15 21:43, patspiper wrote:
program Project1;
{$Linklib kernel32}
Function GetTickCount: DWORD; external;
begin
WriteLn ('GetTickCount ', GetTickCount);
end.
project1.lpr(10,1) Error: Undefined symbol:
P$PROJECT1_$$_GETTICKCOUNT$$LONGWORD
Changing the GetTickCount declaration to any of the following works:
Function GetTickCount: DWORD; external name
'_$dll$kernel32$GetTickCount';
Function GetTickCount: DWORD; external 'kernel32';
Why is the behaviour different between Linux and Windows?
ELF (used by Linux) and PECOFF (used by Windows) use completely
different ways of shared linking.
So what should be done to remedy the Windows case when $LINKLIB is used,
that is unless $LINKLIB is not to be used with Windows?
Note that in the 2 'solutions' I gave, $LINKLIB is not needed and can be
removed altogether.
Stephano
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal