????? 在VS 2005中建立的Win32工程總出現這樣的運行錯誤:"MSVCR80D.dll not found"
好幾次了,總結各種解決方法如下:
???? 原因:(不知道在說啥)由于VS.net 2005 采用了一種新的DLL方案,搞成一個exe還要配有一個manifest文件(一般在嵌入文件里了,所以看不到,不過也可以不嵌入,這樣會生產一個<程序名>.exe.manifest的文件,沒它exe自己就轉不了了:)這是個新功能,微軟弄了個新工具(mt.exe),結果不好用,好像是fat32下時間戳有問題(在ntfs下這個問題就沒有了),搞得manifest有時嵌入不到exe中(默認配置是嵌入的,所以就報錯找不到dll了。
??????解決方法:(任選一個即可)
1.生成Debug版本項目時,未打開連接器的/MANIFEST開關。在'Project?Properties->Configuration?Properties->Mainfest?Tool->Input?and?Output->Embed?Manifest'?將?YES?改成?NO?就可以了.
2.在“屬性->配置屬性->清單工具->常規“下有一個”使用FAT32解決辦法,把它選成是,就可以了。
3、如果建立的是Win32的項目的話可以在項目-(項目名)屬性-配置屬性-C/C++-代碼生成-運行時庫 將其改為多線程調試 /MTd
4、在C:\Program?Files\Microsoft?Visual?Studio?8\VC\redi
st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT?下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest
把這幾個文件拷貝到目標機器上,與運行程序同一文件夾或放到system32下,就可以運行那個程序了。
5、將Debug版本中第一次生成的.res文件刪除后重新Build一次
6、采用Release模式,不要采用Debug模式就可以了
6.? 此法太復雜,懶得試拉.
posted on 2007-03-21 23:23
哈哈 閱讀(4288)
評論(3) 編輯 收藏 引用