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.

Reply via email to