DLLs: Cleaning up

Chris wendlec at tcd.ie
Fri Jul 12 06:25:31 PDT 2013


On Friday, 12 July 2013 at 13:15:34 UTC, Chris wrote:
> On Thursday, 11 July 2013 at 19:37:31 UTC, dnewbie wrote:
>> On Thursday, 11 July 2013 at 12:58:42 UTC, Chris wrote:
>>> I have a DLL written in D I load into a Python application 
>>> via ctypes like so:
>>>
>>> lib = CDLL("mydll")
>>>
>>> The DLL loads and can be used no problem. However, once the 
>>> DLL is discarded of by the program, the program either 
>>> doesn't react or crashes. I still haven't worked out how to 
>>> clean up the DLL correctly before it is unloaded / detached 
>>> (from Python). I guess it's the GC and/or some C stuff I've 
>>> overlooked. I have tried both approaches described on this 
>>> page: http://dlang.org/dll.html.
>>>
>>> Maybe someone of yous once had a similar problem and found a 
>>> solution. Any hints or suggestions would be appreciated. 
>>> Thanks.
>>
>> Ye. Please try compiling your DLL with GDC.
>
> Thanks for the advice, I might try that later. However, I have 
> noticed that my DLL does not cause any errors nor does it crash 
> the app when switching between my DLL and other third party 
> plugins. There is only one other plugin that crashes the app 
> after my dll was active (otherwise there's no crash). I've 
> tried several solutions now but to no avail. I don't think it's 
> the other plugin's fault, as it works usually fine, but maybe 
> there is a conflict somewhere in the dark realms of memory.

Sorry, forgot to mention that I wrote a small test app in Python 
and everything works fine there. I only wonder, if dlls in D 
intrude on the memory / main thread of the main app somehow. 
Forgive me my ignorance, I am not a Windows programmer and 
usually work on Linux/Unix systems.


More information about the Digitalmars-d-learn mailing list