loadlibrary失敗的解決方法

來源:魅力女性吧 7.31K
loadlibrary失敗的解決方法

1、文件路徑不對

2、dll裏有全局變量出事化失敗或dllmain函數返回false。

我們這個程序裏用的是絕對路徑,原因1是不成立的。分析dll的代碼,發現原因2也是不成立的。

追蹤到這裏就沒思路解決問題了,後來發現加載dll可以用loadlibrary,loadlibraryex,afxloadlibrary。試了下其他兩個函數,loadlibraryex現象一樣,afxloadlibrary會拋異常。查了資料,afxloadlibrary是用來加載mfc擴展dll的,不同的一點是 在加載dll前會處理線程同步。好像初始化也沒有線程同步的問題啊。不理解。

再仔細看代碼,發現dllmain所在的類文件裏有 #include <afxdllx.h> , 不理解這個頭文件有什麼作用,屏蔽後編譯沒影響,將dll放在必現的場景下測試,不再出現加載失敗的問題。

熱門標籤