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

Reply via email to