Am 30.01.2019 um 23:14 schrieb conlin664 via fpc-pascal:
ok. I backed up to a simple version.
how I declare the C routine must be the problem,
with nothing,
procedure HelloC; cdecl; external;
I think it's trying to static link it, and gets an
pcode.pas(19,1) Error: Undefined symbol: _HelloC
with anything else
procedure HelloC; cdecl; external 'HelloC';
it links, but dynamically and then the routine is never found.
With merely "external" the compiler uses the C variant of the identifier
for the platform which on Win32 contains a "_" at the start (for Win64
for example there is none).
"external <NAME>" is used to tell the compiler to look for the C
identifier ("_HelloC" on Win32, "HelloC" on Win64) inside the library
"HelloC.dll".
To look for "HelloC" in a statically linked object file or library you
need to use "external name <NAME>".
This is on an evil windows machine
Windows is one of FPC's main targets, we can do without such "expletives".
Regards,
Sven
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal