Creating DLL
Adam D Ruppe
destructionator at gmail.com
Thu Jun 16 16:56:33 UTC 2022
On Thursday, 16 June 2022 at 16:37:34 UTC, Ali Çehreli wrote:
> Agreed but that excludes using the D runtime in 'static this'
> (and shared) blocks, right?
It is runtime.initialize that calls those `static this` blocks.
> If my explicit call to Initialize is in a 'shared static this'
This is backward - the explicit call to Initalize is in the exe.
It'd look like:
// this code is in the exe! pretend it is C++ or whatever
HANDLE lib = LoadLibrary("my_d_lib.dll");
if(lib !is null) {
auto fn = cast(typeof(init_func))
GetProcAddress("Initialize");
if(fn !is null) {
fn(); // this now calls runtime.initialize which calls
the static this blocks etc
// you're now good to call any D functions
}
}
More information about the Digitalmars-d-learn
mailing list