我有一个DLL,它实际上是一个com服务,它已被注册,然后被另一个.exe进程加载。我希望当用户退出.exe执行某些资源关闭步骤时,我的dll才为时过晚。我尝试从我的DLL的DllMain中截取DLLPROCESSDETACH或DLLTHREADDETACH,但似乎当它到达时,它已经太晚了,因为我的DLL(我需要执行关闭步骤)开始的线程已经停止了?!当然,我不控制.exe代码,否则我会从那里调用一个调用来执行那些干净的关闭步骤,然后退出。我只能在DLL本身上工作。它似乎并没有调用DllCanUnloadNow或DllUnregisterServer。我如何知道加载我的DLL的.exe文件即将退出?
有没有人为这种情况解决?
非常感谢您的任何投入。
不起作用,因为它们是从'DLLPROCESSDETACH' – MSalters 2010-07-13 14:20:06