今天在寫代碼的時候出現一個非常奇怪的錯誤。問題是這樣的:
在一個EXE文件中load一個DLL文件,使用的方法是loadlibary,使用指定的DLL名稱作為參數。
1。第一次調用LOADLIBARY,返回NULL,錯誤號是126,查詢原因是找不到指定模塊。
于是我到EXE所在的目錄下找,文件在那里,我可以肯定的確認在那里,于是我重新編譯工程,又實驗了一次,結果是一樣的。
我開始懷疑LoadLibary的問題,我發現這個目錄下有其他DLL,然后將參數改為別的DLL,結果發現load成功。
于是我給哪個DLL改了一個名字,繼續嘗試,結果仍然失敗。我開始懷疑DLL本身的問題,是不是入口的地方出錯,但LOADLIBARY的返回說明不是這個原因,而且我也有TRACE在那邊。
于是我急了,從別的地方復制一個我在別的工程調用成功的DLL到當前目錄來,一調用,結果同樣出錯。
這下我可沒有主意了,為什么原來成功的DLL結果不行了呢?
我又回到原來調用成功的工程中試驗了一下,結果仍然成功。
然后我又調用EXE目錄下的其他幾個DLL,發現不是每個都成功。我覺得這個是一個不可思異的問題,暈啊。。。
無意中我用View dependencies打開了DLL,結果我看出了點問題,于是我一嘗試,這下對了。
大家能猜到這是什么低級錯誤嗎?
給自己長個記性。