Does D support plugins with dll written in D ?
Benjamin Thaut via Digitalmars-d
digitalmars-d at puremagic.com
Tue May 27 23:50:05 PDT 2014
Am 27.05.2014 11:56, schrieb chmike:
> Hello,
>
> note that D is still very new to me.
>
> The documentation for
> http://dlang.org/phobos/core_runtime.html#.Runtime.loadLibrary is a bit
> too terse to answer my question.
>
> I would like to know if it would allow to use Object.factory() with the
> classes defined in the loaded library and if the GC would manage data
> allocated with new in the code of the library.
>
> Does the loaded dll need to be defined as a module or something like that ?
>
No, DLL support on windows is very limited at the moment. Basically you
can create D-DLLs which have a C-interface. Exporting anything but
functions does not or only partially work.
The biggest problem on Windows is that there is no shared version of
druntime/phobos. Which means you have to link a full version of
druntime/phobos into each of your dlls. This not only increases binary
size, it also leads to problems. E.g. if you create a phobos class in
one dll and pass it to another you can no longer cast it (because the
type infos exist twice). There are lot more fun problems, so I would
advice against using DLLs for anything else then C-library like projects.
This DIP might give you a good overview of whats currently broken with
DLLs: http://wiki.dlang.org/DIP45
Kind Regards
Benjamin Thaut
More information about the Digitalmars-d
mailing list