我有连接到EXE的DLL并在那里工作。 Exe不是我的程序。我的DLL只是创建了VCL子窗体。例如,用户关闭了我的子窗体之后,是从EXE卸载我的dll的方法吗?
我试图通过创建线程并执行FreeLibraryAndExitThread
来卸载我自己的DLL,但是获得了访问冲突。
我试图在DLL_PROCESS_ATTACH
之后卸载dll:
#include <vcl.h>
#include <windows.h>
#include <process.h>
#include <vector>
DWORD WINAPI Eject(LPVOID Param) {
ShowMessage("EJECT");
FreeLibraryAndExitThread(HINSTANCE(Param), 0);
return 1;
}
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
switch(reason) {
case DLL_PROCESS_ATTACH: {
ShowMessage("ATTACH");
CreateThread(NULL,NULL,Eject,hinst,NULL,NULL);
break;
}
}
return 1;
}
ShowMessage("EJECT");
我的应用程序崩溃后。
是从自己卸载dll的方法吗?