????? 在VS 2005中建立的Win32工程總出現(xiàn)這樣的運(yùn)行錯(cuò)誤:"MSVCR80D.dll not found"
好幾次了,總結(jié)各種解決方法如下:
???? 原因:(不知道在說啥)由于VS.net 2005 采用了一種新的DLL方案,搞成一個(gè)exe還要配有一個(gè)manifest文件(一般在嵌入文件里了,所以看不到,不過也可以不嵌入,這樣會(huì)生產(chǎn)一個(gè)<程序名>.exe.manifest的文件,沒它exe自己就轉(zhuǎn)不了了:)這是個(gè)新功能,微軟弄了個(gè)新工具(mt.exe),結(jié)果不好用,好像是fat32下時(shí)間戳有問題(在ntfs下這個(gè)問題就沒有了),搞得manifest有時(shí)嵌入不到exe中(默認(rèn)配置是嵌入的,所以就報(bào)錯(cuò)找不到dll了。
??????解決方法:(任選一個(gè)即可)
1.生成Debug版本項(xiàng)目時(shí),未打開連接器的/MANIFEST開關(guān)。在'Project?Properties->Configuration?Properties->Mainfest?Tool->Input?and?Output->Embed?Manifest'?將?YES?改成?NO?就可以了.
2.在“屬性->配置屬性->清單工具->常規(guī)“下有一個(gè)”使用FAT32解決辦法,把它選成是,就可以了。
3、如果建立的是Win32的項(xiàng)目的話可以在項(xiàng)目-(項(xiàng)目名)屬性-配置屬性-C/C++-代碼生成-運(yùn)行時(shí)庫(kù) 將其改為多線程調(diào)試 /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
把這幾個(gè)文件拷貝到目標(biāo)機(jī)器上,與運(yùn)行程序同一文件夾或放到system32下,就可以運(yùn)行那個(gè)程序了。
5、將Debug版本中第一次生成的.res文件刪除后重新Build一次
6、采用Release模式,不要采用Debug模式就可以了
6.? 此法太復(fù)雜,懶得試?yán)?
posted on 2007-03-21 23:23
哈哈 閱讀(4290)
評(píng)論(3) 編輯 收藏 引用