Dll crash in simplest case
evilrat
evilrat666 at gmail.com
Mon Jan 25 12:26:38 UTC 2021
On Monday, 25 January 2021 at 11:30:45 UTC, Vitalii wrote:
> On Monday, 25 January 2021 at 10:26:20 UTC, frame wrote:
>> [...]
>
> Yes. I'm doing it whet add dll.d
> (https://wiki.dlang.org/Win32_DLLs_in_D) in compile line, it
> contents:
> ---
> import core.sys.windows.windows;
> import core.sys.windows.dll;
>
> __gshared HINSTANCE g_hInst;
>
> extern (Windows)
> BOOL DllMain(HINSTANCE hInstance, ULONG ulReason, LPVOID
> pvReserved)
> {
> switch (ulReason)
> {
> case DLL_PROCESS_ATTACH:
> g_hInst = hInstance;
> dll_process_attach( hInstance, true );
> break;
>
> case DLL_PROCESS_DETACH:
> dll_process_detach( hInstance, true );
> break;
>
> case DLL_THREAD_ATTACH:
> dll_thread_attach( true, true );
> break;
>
> case DLL_THREAD_DETACH:
> dll_thread_detach( true, true );
> break;
>
> default:
> }
> return true;
> }
> ---
try replacing this with mixin SimpleDllMain (it initializes
runtime for you IIRC). Runtime.LoadLibrary() is expected to call
rt_init too, but Windows support for shared libs is too far from
good.
More information about the Digitalmars-d-learn
mailing list