問題描述:
用vs2005寫了一小段程序 ,拷至另外一台機器上,運行出錯,如下圖
解決過程:
1、編譯了一個release版本的,拷至那台機器上,運行成功,這就奇怪了,(后來才知,release版msvcp80.dll及msvcr80.dll在此系統上是存在的同,使用Process Explorer工具查看,發現是有msvcp80.dll及msvcr80.dll,如下圖)
2、上網搜索解決方案
出現這類問題,是由於VC2005編譯出來的程序文件,采用了manifest方式來指定dll文件。對於win98、win2000系統,把exe文件和VC的 dll連接庫放到一起就成了。對於winxp、win2003系統就要麻煩的多了,VC的連接庫默認是被放到了winsxs目錄下。
原因找到了,就好解決:在類似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
將以上文件復制到程序的同一目錄下即可正常運行了
參考資源(講得挺詳細的):
http://blog.sina.com.cn/s/blog_59732e990100ii6q.html