DLL的自删除问题,急急急
我用LoadLibrary加载了一个DLL,希望在这个程序关闭时DLL自动删除,该怎么做?
现有如下方法:
1、程序中先LoadLibrary,接着用CreateFile以FILE_FLAG_DELETE_ON_CLOSE打开这个DLL,结果提示拒绝访问
2、程序中先用CreateFile以FILE_FLAG_DELETE_ON_CLOSE打开这个DLL,再LoadLibrary,结果关闭时不能自删除
3、DLL中用以上方法,失败
参考了网上资料,
- C/C++ code
char filenameDLL[MAX_PATH]; GetModuleFileName(g_hmodDLL, filenameDLL, sizeof(filenameDLL)); __asm { lea eax, filenameDLL push 0 push 0 push eax push ExitProcess push g_hmodDLL push DeleteFile push FreeLibrary ret }但这个不能满足要求,我希望在程序退出时自删除,貌似只能响应DLL_PROCESS_DETACH,但这段代码在DLL_PROCESS_DETACH中无效。
不希望开启新的程序或者线程来监视,有没有好的方法?