问题描述:
用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 FilesMicrosoft Visual Studio 8VC edi
stDebug_NonRedistx86Microsoft.VC80.DebugCRT 下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest
将以上文件复制到程序的同一目录下即可正常运行了
参考资源(讲得挺详细的):
http://blog.sina.com.cn/s/blog_59732e990100ii6q.html