當前位置:聚美館>智慧生活>心理>

loadlibrary失敗的解決方法

心理 閱讀(7.82K)
loadlibrary失敗的解決方法

1、檔案路徑不對

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

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

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

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