我在Dll中调用LoadLibray装载另一个Dll,并且想在我的Dll被释放时,自动使用FreeLibrary释放该Dll.将FreeLibrary放在DllMain()中可以实现,但MS说这样不安全,请问还有没有什么方法呢?请赐教

解决方案 »

  1.   

    比如设计一个类,在类的 Destructor 中调用 FreeLibrary,然后为该类申明一个全局变量。其实在 DllMain 中调用 FreeLibrary 也不是不可以(只要释放的 DLL 不依赖于自身),可参考 MFC 的 DllMain
      

  2.   

    sorry, 我是指调用 FreeLibrary 释放的 DLL 没有引用到当前执行 DllMain 的 DLL。
    因为这时当前 DLL 的内部引用计数已经是 0,如果释放的 DLL 再减少当前 DLL 引用计数的话...
      

  3.   

    谢谢In355Hz,再仔细看了MSDN,所谓的not safe的确是指如果两个Dll相互调用。