[fpc-pascal] External library name
    Hairy Pixels 
    genericptr at gmail.com
       
    Sun Jan  5 04:09:40 CET 2025
    
    
  
I see this pattern in C translated header often but I’ve honestly never
understood it entirely.
Why does this “cDllName" need to be added to every single function which
you could just use {$linklib xxxx}?
Furthermore, I’m not even aware that it’s possible to tell the linker that
you want to search for a specific symbol in a specific library so I wonder
does the external library name actually do anything or does it just call
{$linklib} behind the scenes? I’m on macOS and I don’t know how the linkers
work on other platforms so maybe that’s relevant too.
============================================================
const
  cDllName = {$IFDEF WINDOWS}
                     {$IFDEF DEBUG}
                             {$IFDEF WIN64} 'libraylib64-debug.dll' {$ELSE}
'libraylib32-debug.dll' {$ENDIF}
                     {$ELSE}
                            {$IFDEF WIN64} 'libraylib64.dll' {$ELSE}
'libraylib32.dll' {$ENDIF}
                     {$ENDIF}
             {$IFEND}
             {$IFDEF DARWIN} 'libraylib.dylib' {$IFEND}
             {$IFDEF LINUX} 'libraylib.so' {$IFEND};
procedure InitWindow(aWidth : Integer; aHeight : Integer; aTitle :
PAnsiChar); cdecl; external cDllName;
function  WindowShouldClose() : Boolean; cdecl; external cDllName;
procedure CloseWindow(); cdecl; external cDllName;
Regards,
    Ryan Joseph
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20250104/c67a17ff/attachment.htm>
    
    
More information about the fpc-pascal
mailing list