On Tuesday, 27 November 2012 at 01:01:10 UTC, s0beit wrote:
I recently had this problem, and I think I've solved it for now if anyone is still looking for a fix ... it's really ghetto but it seems to work for me.extern (Windows) BOOL DllMain(HMODULE hModule, ULONG ulReason, LPVOID pvReserved) { if(ulReason == DLL_PROCESS_ATTACH) { DllMainReal(hModule); core.memory.GC.collect(); //collect garbage before the return asm { mov EAX, 1; ret; // Don't give the garbage collector the chance to make things messy } } return TRUE; }
Actually completely disregard, what was actually happening was me being stupid. The reason why it didn't fault here is because I totally screwed up the stack and I believe that caused the exception handler to trigger when the DllMain call was finished. I don't know why this would prevent my module from crashing, but it did. It also halted execution of the rest of my code, go figure. No solution for this still. I'll keep working on it, but right now all I've got to go on is invalid memory access in one of the GC's Free functions.
