我們在查看一個.exe文件需要哪些.dll和一個dll會導出那些函數(shù)的時候我們都會用到dumpbin,但運行的時候dumpbin的時候總是提示dumbin是無效的命令(在DOS下的cmd命令中),按照孫鑫的視頻中的方法:說找不到是可能是環(huán)境變量遭到破壞,運行D:/Program Files/Microsoft Visual Studio 8/VC/bin/vcvars32.bat,這個批處理程序就是為VC設置環(huán)境變量的工具,但是好像運行之后還是沒有用。
直接進到D:/Program Files/Microsoft Visual Studio 8/VC/bin看到了dumpbin.exe,但是就是在這個目錄下運行dumpbin也會提示找不到mspdb100.dll,當把mspdb100.dll加到D:/Program Files/Microsoft Visual Studio 8/VC/bin下的時候是可以解決問題,但是這樣做的話下次啟動VS2005運行一個工程的話會出問題,會提示你fatal error C1902: 程序數(shù)據(jù)庫管理器不匹配;請檢查安裝,上網(wǎng)查了一下就是因為從common7 下把mspdb80.dll拷貝到bin下,但是沒有及時刪除造成的。
看來dumpbin.exe的運行是依賴于mspdb80.dll,但是把mspdb80.dll從common7下移動到vc/bin下面又會造成VS的運行錯誤。知道一個.exe找.dll的順序是:
1)內(nèi)存;2)已知DLL;3).local與清單;4)exe文件所在工作目錄;5)進程的當前目錄;6)windows目錄下的系統(tǒng)目錄是c:/windows/system32;7)Windows目錄;8)PATH環(huán)境變量中列出的目錄。
2)看來是不能有兩個mspdb80.dll那就讓dumpbin.exe運行的時候自己去找common7下的mspdb80.dll不就OK了。
解決:
在環(huán)境變量中的PATH變量中手動添加D:/Program Files/Microsoft Visual Studio 8/VC/bin;D:/Program Files/Microsoft Visual Studio 8/Common7/IDE路徑。