Loading Symbols from Loaded Libraries

FreeSlave via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Sep 1 08:23:17 PDT 2014


On Monday, 1 September 2014 at 13:31:32 UTC, Matt wrote:
> If I were to use Runtime.loadLibrary(), it claims to merge any 
> D GC in the shared lib with the current process' GC.
>
> Do I need to version away symbol loading code for each platform?
> Or is there already code in Phobos that allows us to do this 
> independent of platform?

There was high level Library wrapper by Martin Nowak ( 
https://github.com/MartinNowak/druntime/commit/f8f512edea2370759ab75703dceece5e069645be 
), but it seems it was not added to main dmd repository.
So you should use dlsym / GetProcAddress. Use 
core.demangle.mangle to get mangled names of D functions.

I also made some similar wrapper in my project 
https://bitbucket.org/FreeSlave/dido But it was not updated for a 
long time and now it's outdated (code uses dlopen and LoadLibrary 
which is wrong and should be changed to Runtime.loadLibrary. Same 
for dlclose and FreeLibrary)


More information about the Digitalmars-d-learn mailing list