由于应用程序配置不正确,程序未能启动”--原因及解决方法

本文探讨了当遇到'由于应用程序配置不正确,程序未能启动'的错误时,可能的原因和一系列解决方案,涵盖了MFC、DLL、百度搜索、Dreamweaver以及Microsoft x86平台的相关问题。" 7679885,2807,DB2 V8fp5:多字节字符处理导致的数据损坏问题,"['db2', '字符处理', '数据修复', '数据库错误']
摘要由CSDN通过智能技术生成
由于应用程序配置不正确,程序未能启动”--原因及解决方法

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  
<script type="text/javascript"> </script> <script style="display: none;" type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

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

"由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题"

下面是截图

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

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

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

要使应用程序链接这些库,可以

工程-》属性-》配置属性-》常规-》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下相应文件夹下的文件就可以了,文件夹后都有标识

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当您遇到“应用程序无法启动,因为应用程序的并行配置正确”的错误信息时,这通常意味着操作系统检测到您的应用程序尝试在同一时间运行多个实例,并且它认为这种行为不符合预期的配置。 这种错误的原因可能是: 1. **自启动设置**:应用程序在安装过程中可能设置了自启动服务,导致每次系统启动时都会自动运行该应用。如果这个服务被意外地添加或移除,可能会引起此错误。 2. **脚本或服务文件**:外部脚本、计划任务或服务可能在错误的时间或频率触发了应用程序启动。例如,定时任务在一个特定时间点启动应用,而该时间点正好与系统期望的进程并发限制相冲突。 3. **依赖服务问题**:应用程序可能依赖于其他服务或组件,在特定状态下才能正常启动。如果这些依赖的服务未按预期启动,也可能引发“并行配置正确”的错误提示。 4. **资源冲突**:有时,应用程序需要特定类型的系统资源(如CPU核心、内存或文件句柄),并且如果资源分配不当,可能导致并发问题。 解决此类问题的一般步骤包括: - **检查服务管理器**:确认是否有关于服务或启动项的异常设置,确保它们按照设计意图工作。 - **审查自动启动机制**:查看注册表键值、计划任务列表以及启动项中是否有不必要的自动启动设置。 - **优化资源使用**:确保应用程序对所需资源的需求得到合理分配,避免过度消耗系统资源。 - **排查依赖**:确认所有必要的依赖服务或组件都已经正确安装并处于可用状态。 - **调整配置文件**:检查应用的配置文件,看看是否存在影响并发性的配置选项,比如最大允许并发连接数等。 如果以上步骤未能解决问题,可能需要深入查看应用程序的日志文件,寻找更具体的错误信息来定位问题所在。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值