读书人

DLL的自删除有关问题

发布时间: 2012-12-24 10:43:13 作者: rapoo

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中无效。

不希望开启新的程序或者线程来监视,有没有好的方法?

读书人网 >VC/MFC

热点推荐