LoadLibrary("dllname.dll")出錯

最近想把一個已經存在的VC++工程裏面的某個編碼模塊編譯成DLL供PHP調用,編譯好DLL之後,用LoadLibrary函數調用,結果返回錯誤代碼:126,加載失敗,然後開始尋找原因,主要從以下幾個方面嘗試:

1) 路徑不對,於是把DLL文件拷貝到工程所有的目錄裏,依然錯誤;換成絕對路徑,依然錯誤;看來不是路徑的問題!
2) 編譯的DLL文件有問題?那就用VS自帶的命令行工具檢查一下,使用的命令是:dumpbin -exports dllname.dll,結果發現是好的,看來DLL文件也沒問題!
3) 在網上還看到一個可能,就是DLL依賴項沒有一起拷過去,細想應該不是,原因有二:其一,我新建的很簡單的DLL工程,沒有任何依賴項的DLL都不行;其二就是使用的絕對路徑;
4) 柳暗花明,偶然看到了一個說法,loadlibrary的字符串參數也就是DLL路徑可以改爲多字符集,因爲默認的是Unicode字符集,試了一下,居然成功了!如圖:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章