随笔-182  评论-92  文章-1  trackbacks-3

[VS2005]解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”

   今天在准备发布用VS2005写的那个程序时,拷贝到我同事机器上,双击突然出现了“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题“,这个问题很让我意外,以前只出现过缺少DLL的情况,而这次出现这个问题,让我一时没办法。想想,无非是两个原因引起的,要么是他没有安装VS2005的原因,要么是我的程序里依赖了其它的一些库。于是百度一下,发现好多相关主题。我是按照这个帖子解决的:

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

以前用VC6和VS2003的话, 如果缺少库文件,是会提示缺少“**.dll”,但是用VS2005却没有这样的提示。

自己实验了一下,感觉以下几种解决办法是可行的:
方法一:
在类似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下,就可以正确运行了。

其他release版、MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!

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

方法三:

工程-》属性-》配置属性-》常规-》MFC的使用,选择“在静态库中使用mfc”
这样生成的exe文件应该就可以在其他机器上跑了。

方法四:

你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装

posted on 2007-05-11 19:21 riky 阅读(24193) 评论(38)  编辑 收藏 网摘 所属分类: vs2003/2005/.net/c#

评论:
#1楼 2007-09-19 19:37 | huobof[未注册用户]
解决了!!!
爱死你了!!!!!

  回复  引用    
#2楼 2007-12-18 13:52 | 用户未注册[未注册用户]
受教了
  回复  引用    
#3楼 2008-02-03 20:56 | 陈兵[未注册用户]
你写的好深奥阿
我看不懂怎么办?
能不能写的更加具体些?谢谢了

  回复  引用    
#4楼 2008-04-13 20:52 | sjg20010414[未注册用户]
谢了,帮我在2分钟内解决了一个问题!
  回复  引用    
#5楼 2008-04-17 21:34 | Bingfeng[未注册用户]
使用depends工具探查一下就知道了,还有,您的程序不打包就分发吗?
  回复  引用    
#6楼 2008-05-30 22:51 | hoty[未注册用户]
楼主好人啊~!
雪中送炭

  回复  引用    
#7楼 2008-06-06 13:15 | VC++菜鸟[未注册用户]
楼主你太厉害了,受教了。简明易懂哦。
  回复  引用    
#8楼 2008-07-09 19:23 | 三点会运动[未注册用户]
哪里找那"工程"
  回复  引用    
#9楼 2008-07-09 22:37 | 三点会运动[未注册用户]
不会
  回复  引用    
#10楼 2008-07-14 13:08 | 罗梦雪[未注册用户]
还是不会呀,哪里在哪里都不知道

  回复  引用    
#11楼 2008-07-31 11:46 | 网上[未注册用户]
Microsoft.VC80.DebugCRT.manifest哪里有下啊?
  回复  引用    
#12楼 2008-10-11 13:56 | #12楼[未注册用户]
不懂
  回复  引用    
#13楼 2008-10-26 07:35 | #13楼[未注册用户]
不会啊!怎么弄啊?教挝,还有没有别的办法?
  回复  引用    
#14楼 2008-10-31 10:58 | flywater[未注册用户]
3Q,问题解决了
直接用方法3,最简单,就是编译后稍微大点。

  回复  引用    
#15楼 2008-11-19 20:00 | 322[未注册用户]
bu hui

  回复  引用    
#16楼 2008-11-20 16:32 | zdl1016[未注册用户]
另外补充一下:
如果你把相应的dll都添加上去了,还是出现这样的问题, 那么请注意了, 查看你的编译器vs2005, 是否安装了 sp1补丁. 这个补丁很大, 安装补丁就要半个小时. 如果没有安装这个补丁, 你的exe, 是不会在别的电脑上运行起来的.

  回复  引用    
#17楼 2008-11-20 22:32 | 许界[未注册用户]
--引用--------------------------------------------------
三点会运动: 哪里找那"工程"
--------------------------------------------------------

  回复  引用    
#18楼 2008-11-20 22:38 | 许界[未注册用户]
--引用--------------------------------------------------
许界: --引用--------------------------------------------------
三点会运动: 哪里找那"工程"
--------------------------------------------------------

--------------------------------------------------------

  回复  引用    
#19楼 2008-11-23 21:46 | xfc[未注册用户]
回帖的有的不是编程方面的 只是一般的安装程序 或者游戏打不开而已···那个更简单去装个Microsoft .NET Framework 2.0就OK了··实在笨的可以的加我QQ8983310 传给你吧 做个好人 长命百岁 嘿嘿
  回复  引用    
#20楼 2008-12-13 20:00 | 周某[未注册用户]
操你哦。。。19楼的~~真照你的做了~~安装了。可以了~~么么~~亲个
  回复  引用    
#21楼 2009-01-03 15:22 | 死[未注册用户]
方法一:
在类似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



这个我根本就找不到啊,!
有没有人在,更明白点的啊,!
速度,谢谢你们乐啊.!


  回复  引用    
#22楼 2009-01-08 11:45 | latina girl[未注册用户]
我的QQ突然无法使用了,双击说是由于程序配置不正确,应用程序未能启用。可否用这些方法?这些方法看起来很复杂啊,怎样能尽可能简单的解决呢、。?谢啦~~
  回复  引用    
#23楼 2009-01-13 10:24 | 孙明芳[未注册用户]
@latina girl
@latina girl
--引用--------------------------------------------------
latina girl: 我的QQ突然无法使用了,双击说是由于程序配置不正确,应用程序未能启用。可否用这些方法?这些方法看起来很复杂啊,怎样能尽可能简单的解决呢、。?谢啦~~
--------------------------------------------------------

  回复  引用    
#24楼 2009-01-13 10:24 | 孙明芳[未注册用户]
--引用--------------------------------------------------
孙明芳: @latina girl
@latina girl
--引用--------------------------------------------------
latina girl: 我的QQ突然无法使用了,双击说是由于程序配置不正确,应用程序未能启用。可否用这些方法?这些方法看起来很复杂啊,怎样能尽可能简单的解决呢、。?谢啦~~
--------------------------------------------------------

--------------------------------------------------------

  回复  引用    
#25楼 2009-02-05 19:39 | SOS[未注册用户]
能不能有更简单的方法啊??咱有点看不懂啊.,有没有FLASH侃侃啊

  回复  引用    
#26楼 2009-02-13 14:54 | Luyee[未注册用户]
本人基本同意以上说法,但有几点要说明一下:

1.对于以上说的第一种解决方案存在以下不妥之处:把msvcrt80.dll、msvcrp80.dll等DLL以及相应的manifest文件同Exe文件放在一起,那么Exe就一定可以运行了吗?这个Exe文件所加载的以上这些dll文件是不是你本地目录所提供的呢?
第一个问题和第二个问题其实是紧密相连的,那个Exe文件不一定能运行起来,因为它所加载的那些80.dll都不是你本地目录所提供的,而是windows\WinSxs目录下的所提供的80.dll。对Exe文件加载了哪些DLL文件,你可以使用IceSword工具来查看。

2.对于第二、三种解决方案,其实不太可能被采纳,因为使用静态链接,文件太大。产品的发布,一般不会采用这种方式。

3.对于第四种方案,可能是最稳妥的一种做法。但这中间也存在一个问题:就是安装包每次运行之前,都先安装vcredist。exe(X86),这就有了问题:其一,多次安装vcredist会不会有问题。其二,用户会不会感觉烦。

  回复  引用    
#27楼 2009-02-15 20:38 | tsr[未注册用户]
我就是游戏因为这打不开,能教我一下吗

  回复  引用    
#28楼 2009-02-15 20:39 | tsr[未注册用户]
qq727660137
  回复  引用    
#29楼 2009-02-15 20:45 | tsr[未注册用户]
好了,太感谢了

  回复  引用    
#30楼 2009-03-04 15:39 | 寻助[未注册用户]
--引用--------------------------------------------------
三点会运动: 哪里找那"工程"
--------------------------------------------------------

  回复  引用    
#31楼 2009-03-11 22:11 | taozi[未注册用户]
--引用--------------------------------------------------
孙明芳: --引用--------------------------------------------------
孙明芳: @latina girl
@latina girl
--引用--------------------------------------------------
latina girl: 我的QQ突然无法使用了,双击说是由于程序配置不正确,应用程序未能启用。可否用这些方法?这些方法看起来很复杂啊,怎样能尽可能简单的解决呢、。?谢啦~~
--------------------------------------------------------

--------------------------------------------------------

--------------------------------------------------------

  回复  引用    
#32楼 2009-05-17 01:13 | jdkl [未注册用户]
na wo zen me zhao bu dao zhe xie a
  回复  引用    
#33楼 2009-05-17 01:14 | jdkl [未注册用户]
这个我根本就找不到啊,!
  回复  引用    
#34楼 2009-05-17 01:15 | jdkl [未注册用户]
Microsoft Visual Studio 8这个我根本就找不到啊,!

  回复  引用    
#35楼 2009-06-09 12:22 | 123456789oiu[未注册用户]
楼主你太厉害了,受教了。简明易懂哦。

  回复  引用    
#36楼 2009-06-09 12:22 | 123456789oiu[未注册用户]
太谢谢谢了
  回复  引用    
#37楼 2009-06-18 19:30 | 李永豪[未注册用户]
楼主,我跟本找不到你说的那些msvcm80d.dll……东西啊!那咋办?我的电脑连下载都不行了……求助了,谢谢


  回复  引用    
#38楼 2009-06-22 14:25 | 专门顶楼主[未注册用户]
不错,解决了大问题!
  回复  引用    



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 743310




相关文章:

相关链接: