<div dir="auto"><div class="gmail_quote" dir="auto"><div dir="ltr">Am Fr., 25. Jan. 2019, 01:01 hat Marc Santhoff <<a href="mailto:M.Santhoff@web.de">M.Santhoff@web.de</a>> geschrieben:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, 2019-01-23 at 14:30 -0700, conlin664 via fpc-pascal wrote:<br>
> I've done research, but am just missing something.<br>
> my .pas code links just fine, but doesn't RUN.<br>
> ( first writeln never appears )<br>
> If I remove the  external call to C code, then the writeln works as normal.<br>
><br>
> Problem:<br>
><br>
> I have c code, which I'm compiling on a WIN32 machine ( yes the horror )<br>
> using  GCC 4.5.2  target mingw32<br>
><br>
> It generates .o files which i grouped together with ar  into common.a<br>
> I then renamed common.a to be libcommon.a<br>
><br>
> Then I have a<br>
><br>
> Common.pas file:<br>
><br>
> unit Common;<br>
> interface<br>
><br>
> uses<br>
> sysutils, dos, CTypes;<br>
><br>
> {$linklib libcommon.a }<br>
><br>
> procedure CutilInit;  cdecl; external 'CutilInit';<br>
><br>
> implementation<br>
><br>
> end.<br>
><br>
<br>
Try stdcall on Win32:<br>
<br>
  procedure CutilInit;  stdcall; external 'common' name 'CutilInit';<br>
<br>
If the full external declaration is necessary you'll have to try. I had to<br>
when using a dynamic library (.dll in win32 terms).<br></blockquote></div><div dir="auto"><br></div><div dir="auto">The "external LIB name FUNC" is wrong in the case of static linking as is "external FUNC" as the poster wrote, cause that is in fact "external LIB". So instead try "external name FUNC" (though I didn't test it). Using the correct calling convention still applies of course. </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div>