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