在未安装VS2005的机器上运行VS2005编译的C++程序

原创 2006年06月08日 23:53:00
1. 问题描述:

最近在VS2005下用C++写了一个Console程序,在一台未安装VS2005的机器上不能正常运行。
用命令行方式运行,提示:
“系统无法执行指定的程序”
直接双击运行,提示:
“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”

用VC6和VS2003也有这个问题,只不过会提示说找不到“***.dll”,把需要的dll拷贝到目标机器就可以正常运行了。而VS2005并没有提示缺少哪些dll。

2. 解决方案:

在水木C++版请教了一下,ass做出了回答(非常感谢ass的帮助)。把他的回答摘录如下,大家共同学习:

“因为没有msvcr80.dll
可以改一下编译选项 多线程dll(/MD)改成多线程(MT)这样就静态链接,
也可以从你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装。”

根据ass指导的思路,自己实验了一下,感觉以下两种解决办法是比较方便的:

方法一:
在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下,就可以运行那个程序了。

方法二:
修改“C++/Code Generation”中的运行时库选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。

VS2005 解决"应用程序配置不正确,程序无法启动"问题

http://xingzhesun.blogbus.com/logs/27746345.html 最近使用VS2005+codejock开发,需要做一个Release版本。当我把必要的mfc库...
  • CSDNMicrosoftCSDN
  • CSDNMicrosoftCSDN
  • 2016年06月29日 16:40
  • 3127

vs2005让程序在win7下获得管理员权限

1、UAC简介 从Windows Vista系统开始,微软为了提高系统安全引入了UAC(User Account Control,用户帐户控制)技术,它要求用户在执行可能会影响计算机运行的操作或执行...
  • cdsxyx
  • cdsxyx
  • 2016年03月20日 23:16
  • 1225

用VS2013在win7下编写的C++程序怎么在XP下运行?

 用VS2013在win7下编写的C++程序在XP下运行的错误与解决。   1.在xp下运行报错为:“不是有效的win32应用程序。” 解决方法: 【配置属性】-【常规】-【平台工具集】...
  • civilman
  • civilman
  • 2014年10月15日 13:34
  • 10582

如何在其他电脑上运行VS2005编译的DEBUG版应用程序

做项目的过程中,遇到这样的问题:在自己的电脑上用VS2005编译好的DEBUG版程序在其它的没有安装VS2005的电脑上没有办法运行,郁闷至极啊。 直 接拷贝文件后,错误信息如下:"This ap...
  • fengbangyue
  • fengbangyue
  • 2011年01月20日 13:36
  • 2235

vs2005程序发布:静态编译或动态编译生成安装包

1 静态编译 打开工程属性页面,如下两图所示进行设置: 如果出现警告可如下进行设置: warning LNK4098: defaultlib 'LIBCMT' conflicts with ...
  • u011442652
  • u011442652
  • 2013年12月16日 20:30
  • 517

vs2005 vc++ 生成非托管的 不需要.net运行环境的exe程序方法

在VS2005里开发的VC++程序在编译的时候,微软默认会加入自己的 .Net Framework (方便推广自家产品),让你的VC++程序依赖它,这就导致程序编译后,无法跟往常一样直接打包,在别的机...
  • hanghangaidoudou
  • hanghangaidoudou
  • 2012年04月08日 17:49
  • 794

vs2005 生成的应用程序 在win7下以管理员权限运行

在开启UAC的时候,在win7中执行程序默认是以一种权限较低的方式执行的,但是在这种方式下,我们有些操作会失败(比如修改注册表,监听端口,往系统目录写入文件等),要实现这些操作,就需要我们以管理员权限...
  • debugconsole
  • debugconsole
  • 2012年12月27日 17:32
  • 6564

vs2005 中引入app.manifest(c#程序在win7下以管理员权限运行方法)

打开VS2005、VS2008、VS2010工程,查看工程文件夹中的Properties文件夹下是否有app.manifest这个文件;如没有,按如下方式创建:鼠标右击工程在菜单中选择“属性”,点击工...
  • a316019667
  • a316019667
  • 2013年03月07日 16:45
  • 4914

vs2005 运行程序 出现没有找到MSVCP80D.dll 解决方法

没有找到MSVCP80D.dll 解决方法 在VS 2005中建立Win32工程时(以VS 2005中文版为例),你可能会遇到这样的运行错误:“没有找到MSVCP80D.dll,因此这个应用...
  • u011244446
  • u011244446
  • 2014年06月26日 11:55
  • 851

为什么用vs2005平台运行C++的时候会显示 系统找不到指定路径?

原文链接:http://zhidao.baidu.com/question/218427182.htmlVS 2005在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件...
  • xuwqcug
  • xuwqcug
  • 2011年07月20日 09:12
  • 720
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在未安装VS2005的机器上运行VS2005编译的C++程序
举报原因:
原因补充:

(最多只允许输入30个字)