因为应用程序配置不对,程序未能启动”--原因及解决方法

因为应用程序配置不对,程序未能启动”--原因及解决方法


http://moogge.spaces.live.com/blog/cns!ab9b00d806d52aed!245.entry

问题描写叙述:

当执行由VC 2005 编译的程序时,出现错误消息“因为应用程序配置不对,程序未能启动.又一次安装应用程序可能会纠正这个错误”

解决方法:


在目标机器安装VCRedist_x86.exe能够解决问题。该文件能够在MSDN站点上下载。
地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en
假设是64位机器,请用x64版本号和ia64版本号

原因:

一般觉得,VC2005编译出来的东西,假设用了atl或者mfc,须要atl80.dll 或者msmfc80.dll,我在一開始的时候也是这么觉得的,我把这两个文件放在了path中能够找到的地方。因此用depends看出来是没问题的。
但 是其实,从VC2005開始,(可能2003,可是我没实用过)这些dll是不像曾经的程序那样直接被载入进进程的。查看%SYSTEMROOT%/ winsxs会发现里面有非常多相似于x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.42_x- ww_6e805841的文件夹,这些文件夹里面包括了atl80.dll, msmfc80.dll。然后在manifests 文件夹里面有相应的manifests:x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.42_x -ww_6e805841.manifest

这是VC8的一个改变。VC8编译的程序在执行时载入动态库(crt, mfc, atl )都是放在一个相似全局类型库的地方。不再像曾经MS所建议的那样,为了避免dll hell而把动态库放在程序同级文件夹。而这个全局类型库的地方就是winSxS,同一时候载入之前还须要有该dll相应的manifest。

详细载入dll的时候为什么须要Manifest我不是非常清楚,Visual C++ 2005的 program manager Martyn Lovell在他的blog中有提到要解释这样做的原因,可是至今没有下文:(

临时可以知道的是,载入dll须要manifest,没有manifest的动态库即使放在path下也不会载入。而VCRedist_x86.exe会帮你把manifest和dll放在正确的地方。


參考:


Redistribution of VC++ files(VC80)
http://msdn2.microsoft.com/en-us/library/ms235299(VS.80).aspx

VC8 使用WinSxS的原因:
Martyn Lovell‘s blog


VC++2005 console 程序错误:因为应用程序的配置不对,应用程序未能启动,又一次安装
作者:佚名  出处:中国自学编程网收集整理   公布日期:2008-09-10  

今天在用VC++2005写一个控制台程序的时候,提示一下错误

"因为应用程序的配置不对,应用程序未能启动,又一次安装应用程序可能会纠正这个问题"

以下是截图

在网上查了查,说是有可能没装Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)的问题,这个好办,直接从MS站点上下了一个,重起,还不行。

试了一下release版,能够使用,细想,debug下有很多调试信息,是不是跟这些些库有关系

msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest

要使应用程序链接这些库,能够

project-》属性-》配置属性-》常规-》MFC的使用,选择"在静态库中使用mfc"
run,一切OK,

第一回用2005的console程序,看来和VC6.0还是有一定差别。



==================================
VC2005程序的一个执行错误“因为应用程序的配置不对,应用程序未能启动,又一次安装...”
2008-04-02 10:52

转贴(可行)

VC.net2005写的程序怎样在没有.Net FrameWork的机器上执行 --解决"因为应用程序的配置不对,应用程序未能启动,又一次安装应用程序可能会纠正这个问题"

近期在公司的主要工作是做一个桌面程序,提供给公司正在为移动做的项目使用.我開始时是用C#写的程序,后来,公司要求,不安装.net framwork 2.0, 要求我改成C++的.所以后来改成VC2005和程序.原来以为能够不用安装,附带几个DLL库就能够执行程序了,哪知道,開始时,在别的电脑上都不能运 行,一执行就报错,在XP如的错误例如以下图:

因为应用程序配置不对,程序未能启动”--原因及解决方法

在2000上也会报错,只是,他会提示:由于少了XXX DLL,程序无法启动,于是我找到所以提示缺少的DLL放到程序文件夹下,2000下就能够执行了.但是在XP上还是不行,还是会报上面那个错误,我猜肯定 是少了哪个DLL,但是找不出来,同事们也用了好多方法帮我找程序用到的DLL,也用到了不少的好工具,也找出了好多DLL,这些DLL加到一起,有10 几M那么多(例如以下图).但是XP下还是不行.看来找DLL是没办法了.到网上找找办法吧.

因为应用程序配置不对,程序未能启动”--原因及解决方法

到百度里输入"因为应用程序的配置不对",搜索一下,嘿嘿,还真不少,都是和我一样,VC2005写的程序,在2000下能够用,在XP, 2003下不行,只是发现,都是有人问,没人回答,可怜的人啊,咋就和我一样不幸呢.继续找啊找啊,找到了,找到一个人,提供了三个方法,摘下来,例如以下:

近期在VS2005下用C++写了一个Console程序,在一台未安装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了。

方法三:

project-》属性-》配置属性-》常规-》MFC的使用,选择"在静态库中使用mfc"
这样生成的exe文件应该就能够在其它机器上跑了。

方法四:

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

我逐一測试下来,直到第三个方法才成功.第二个方法不知道在哪里改动编译选项所以放弃了,第四个方法不喜欢,这跟直接安装.net framework 2.0 有什么差别吗?还不如直接安装.net framework 2.0 呢.

使用第三种方法,编译后,程序的文件会变大好多,由于其已经将使用到的DLL库静态编译到了程序里了.我这个程序原来的大小是288K,如图:

因为应用程序配置不对,程序未能启动”--原因及解决方法

而採用第三种方法生成的程序却有2.85M那么大,例如以下图所看到的:

因为应用程序配置不对,程序未能启动”--原因及解决方法

只是比起那么多的DLL来,这点大小不算什么.只是,在执行时,相信占用的内存应该会多一点.

假设你正在使用VC2005,也出现这样问题的话,就试试上面的方法吧.


类别:vc开发 | 加入到搜藏 | 浏览( 300) | 评论 (0)
 
上一篇: C/S分布式通讯(SOCKET技术)    下一篇: 安装文件的打包

http://hi.baidu.com/can2786/blog/item/fa8a1fed9aec7ad0b31cb187.html

点快捷方式时出现“因为应用程序配置不对应用程序未能启动。...
点快捷方式时出现“因为应用程序配置不对,应用程序未能启动又一次安装应用程序可能会纠正这个问题。” 悬赏分:5 - ... 桌面快捷方式无法打开相应的应用程序??? ...
zhidao.baidu.com/question/19594853.html 12K 2007-2-5 - 百度快照
zhidao.baidu.com 上的很多其它结果

VC++2005 console 程序错误:因为应用程序配置不对应用程序..
"因为应用程序配置不对,应用程序未能启动,又一次安装应用程序可能会纠正这个问题" 以下是截图 在网上查了查,说是...run,一切OK, 第一回用2005的console程序,看来和VC6.0还是有一定差别。 相关文章 关于VC++2005 console 程序错误:...
www.zxbc.cn/html/20080910/65505.html 18K 2008-11-1 - 百度快照
www.zxbc.cn 上的很多其它结果

因为应用程序配置不对程序未能启动又一次安装应用程序可能会...
编写的MFC动态连接的程序,在自己的机器上执行正常,在2000系统的測试机上执行也正常,但就是在XP系统的測试机上执行会出现“因为应用程序配置不对,程序未能启动,又一次安装应用程序可能会纠正这个问题。”这种错误。 仅仅有使用MFC的动态连接...
topic.csdn.net/t/20060731/09/4915878.html 12K 2006-10-25 - 百度快照
topic.csdn.net 上的很多其它结果

0号空间: “因为应用程序配置不对,程序未能启动”--原因及解...
编译的程序时,出现错误消息“因为应用程序配置不对,程序未能启动.又一次安装应用程序可能会纠正这个错误”解决方法:在目标机器安装VCRedist_x86.exe能够解决这个问题。该文件能够在MSDN站点上下载。地址:http://www.microsoft.com/downloads/...
moogge.spaces.live.com/blog/cns!ab9b00d80 ... 51K 2008-4-23 - 百度快照

VC2005程序的一个执行错误“因为应用程序配置不对应用程序...
--解决"因为应用程序配置不对,应用程序未能启动,又一次安装应用程序可能会纠正这个问题" 近期在公司的主要工作是做...把这几个文件复制到目标机器上,与执行程序同一目录或放到system32下,就能够执行那个程序了。 其它release版,MFC程序...
hi.baidu.com/can2786/blog/item/fa8a1fed9a ... 22K 2008-4-3 - 百度快照
hi.baidu.com 上的很多其它结果

转:解决VC2005程序的一个执行错误“因为应用程序配置不对,...
在VC程序中使用调试语句 在vc中使用MSXML解析xml文件 转:解决VC2005程序的一个执行错误“因为应用程序配置不对,应用程序未能启动,又一次安装应用程序可能会纠正这个问题”VC 获取默认打印机vc中的控件使用(CTreeCtrl,CComboBox,CFileDialog)...
www.diybl.com/course/3_program/vc/vc_js/2 ... 21K 2008-9-11 - 百度快照
www.diybl.com 上的很多其它结果

因为应用程序配置不对,程序未能启动”解决方法! - 体育音乐游...
因为应用程序配置不对,程序未能启动”解决方法! 问题描写叙述: 当执行极品飞车11(装过1.1补丁后) 出现因为应用程序配置不对,程序未能启动,又一次安装应用程序可能会纠正这个错误 如图: 解决方法: 在目标机器安装VCRedist_x86.exe能够解决...
bbs.xunlei.com/viewthread.php?tid=1743719 72K 2008-10-13 - 百度快照

因为应用程序配置不对,应用程序未能启动又一次安装应用程序可能..
因为应用程序配置不对,应用程序未能启动又一次安装应用程序可能会纠正这个问题因为应用程序配置不对,应用程序未能启动又一次安装应用程序可能会纠正这个问题 一直用Adobe Dreamweaver CS3绿色免安装版,近期重装操作系统后,再次执行dw,...
www.qt56.com/blog/err.html 13K 2008-10-20 - 百度快照

因为应用程序配置不对,应用程序未能启动.又一次安装应用程序可能...
因为应用程序配置不对,应用程序未能启动.又一次安装应用程序可能会纠正这个问题 因为应用程序配置不对,应用程序未能...去bitcomet主页下个zip版的,不用安装直接解压缩就能够用。 我一直用0.59 zip版的 关于杀毒软件: 杀毒不如防毒!!...
it.dahe.cn/bbs/read.php?tid=1030 23K 2008-11-18 - 百度快照

随读语音朗读-因为应用程序配置不对,应用程序未能启动
2008-5-13 1:49:2因为应用程序配置不对,应用程序...否则程序启动时将会报告错误,无法执行。 系统中没有安装...
www.zero-z.cn/freadblog/post/5.html 8K 2008-5-13 - 百度快照


1 [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10]  下一页


因为应用程序配置不对,程序未能启动,又一次安装应用程序可能会纠正这个问题。

你可能感兴趣的:(应用程序)