FreeLibrary造成死锁的问题探讨

    今天自己在写一测试程序时,显示调用一个DLL时,使用LoadLibrary函数,然后使用FreeLibrary函数进行释放时,出现了程序卡死的情况,网上这方面讲解比较少,且认为这造成了死锁,具体原因确实也弄不清楚~~不知道是测试程序的问题还是DLL的问题,后来索性自己写个DLL,然后这自己写的DLL进行LoadLibrary和FreeLibrary处理,发现并没有出现卡死的情况,难道原来是DLL本身的问题~~具体DLL的问题我也无法弄清楚。

    而我现在要写一个DLL,需要调用原来的DLL的一些函数,开始的时候,我是在要实现的函数中进行LoadLibrary和FreeLibrary(这样写个人感觉其实并不好),发现出现了上面这个问题,总是找不到原因,后来想到原来写过一个类似的动态链接库,是在Dllmain中进行LoadLibrary和FreeLibrary的,我也就照葫芦画瓢,同样这么使用,发现这样做却OK了,自己也不清楚其中的原因,在MSDN上说,在Dllmain中使用LoadLibrary和FreeLibrary是不安全的,但是也顾不了那么多了~~

 

具体原因依然没弄明白,先记在这里,以免后来的朋友遇到同样的问题~~

 

你可能感兴趣的:(C/C++)