On 02.01.2016 16:34, alkololl wrote:
On Saturday, 2 January 2016 at 01:44:46 UTC, Adam D. Ruppe wrote:
On Saturday, 2 January 2016 at 00:32:20 UTC, alkololl wrote:
Why is that?
I'm not sure, but in the switch you posted, you didn't handle the
DLL_THREAD_ATTACH and DLL_THREAD_DETACH cases, the runtime might be
incrementing the refcount there.
Check this out:
http://wiki.dlang.org/Win32_DLLs_in_D
Thanks for your reply. I replaced my switch statement with the one
behind the link you left but the result (no result) stays the same. The
Dll doesn't get unloaded. Not until I close the host application.
D needs "implicite thread local storage" to implement thread local
variables, but Windows XP and earlier versions do not support this for
DLLs dynamically loaded through LoadLibrary. The D runtime implements
the part necessary for loading, but does not support unloading. As a
consequence it sets the DLL to never unload.
If you are actually running XP, you can check
https://github.com/denis-sh/hooking. IIRC Denis Shelomovskij implemented
the missing parts.