问题描述:
当运行由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

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

工程-》属性-》配置属性-》常规-》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了。

方法三:

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

方法四:

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

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

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

而采用第三种方法生成的程序却有2.85M那么大,如下图所示:

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

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

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

  1. 由于应用程序配置不正确,未能启动该应用程序。请查看清单文件以查找可能的错误

    以前.net 2.0写的一个winform程序,选择转到vs2008,net 3.5下,转换成功完成,但是启动时报错: "由于应用程序配置不正确,未能启动该应用程序.请查看清单文件以查找可能 ...

  2. 【IDE-Visual Studio】无法启动程序 xxx exe 由于应用程序配置不正确,未能启动此应用程序

    问题 解决方案 如下图设置工程属性: 配置属性->链接器->清单文件->生成清单=否 再分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们 ...

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

    由于应用程序配置不正确,程序未能启动"--原因及解决方法 http://moogge.spaces.live.com/blog/cns!ab9b00d806d52aed!245.entry ...

  4. QQ提示应用程序并行配置不正确,绿色版QQ不能运行解决方法

    出现此问题是因为您的计算机中缺少VC运行库导致的,建议您到互联网上下载相应的VC2005运行库,Windows 7请下载VC2008运行库安装到您的计算机中.如果您安装了运行库还是不行,建议您安装:( ...

  5. nvm安装和配置(npm下载失败的原因以及解决方法)

    文章目录 前言 一.下载nvm安装包 二.安装nvm 三.配置nvm 1.方法一:有可能会出错的安装方式 2.方法二:一定不会出错的方法 三.多个node管理 1.确认环境 2.安装及确认 2.切换n ...

  6. oracle10在w7下提示无法定位,Win7提示无法定位程序输入点 于动态链接库的原因及解决方法...

    无法定位程序输入点 于动态链接库上这是怎么回事?Win7系统下,用户经常是在电脑开机的时候遇到这个提示,或是在运行网络游戏及单机游戏时也会出现这种情况,偶尔也会在运行某个程序软件时显示无法找到入口,无 ...

  7. MFC的exe启动时提示应用程序配置不正确,应用程序未能启动错误

    MFC的exe启动时提示应用程序配置不正确,应用程序未能启动错误 老姐笔记本中毒太深于病入膏肓,无奈迫写一程序"曲线救国".刚启动自己写的程序就出现应用程序配置不正确,应用程序未能 ...

  8. VMware Workstation 运行出现“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”解决方案

    From: http://blog.csdn.net/lasig/article/details/5694895 今天安装完VMware Workstation 6.5.2之后在运行时,遇到" ...

  9. 【原】解决VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题...

    --更新于2011/4/19,针对最新的VS2008补丁,VS2005/2010同样适用. VC9编译的程序在没有装过VC9(确切的说是.Net Framework3.5)的机器上运行时,如果提示&q ...

最新文章

  1. flask执行python程序_Flask app后如何执行代码(应用程序运行)开始
  2. prometheus 基于文件的目标发现
  3. 学习笔记68—PhotoShop常见快捷键
  4. 微信之初学者:基本的列表操作
  5. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用
  6. c51语言的数据存储模式,第5章项目三单片机存储结构及C51语言.ppt
  7. data的值 如何初始化vue_【Vue 原理】Vue 是如何代理 data、methods 和 props 的?
  8. vue中加载OCX控件(IE浏览器执行)
  9. 【SIPp】Linux-SIPp3.6.0 测试FreeSwitch
  10. 假设有一个英文文本文件,编写程序读取其内容,并将其中的大写字母变为小写字母,小写字母变为大写字母。...
  11. 区块链+珠宝供应链金融:除了解决信任问题,他们想让数字资产流动起来
  12. socket中的TCP编程(调用免费聊天的机器人实现自动回复)
  13. 活用lambda之list函数处理
  14. 微信机器人网页版接口详解
  15. 论文阅读笔记五十四:Gradient Harmonized Single-stage Detector(CVPR2019)
  16. 163vip邮箱手机快速注册,163手机邮箱如何登录?
  17. JavaWeb之jsp
  18. 51单片机 —— 计时器
  19. jquery获取上级、同级和下级元素
  20. MySQL中级优化教程(五)——数据库建表时数据类型的选择

热门文章

  1. Unity3d Ugui 18 LayoutElement
  2. librdkafka开源库使用总结
  3. 印象笔记 for mac怎么截图?mac版Evernote截图技巧
  4. Python实现冰雹猜想(折线图)
  5. 有关DSP2812与SPI接口DA芯片的通信(AD5640,AD5682)
  6. mysql连接的特性及拖库姿势
  7. iOS—分类、load 、initialize
  8. 人见人“吐”的十大经典广告(绝对超经典)[zzzz]
  9. docker安装elasticesearch
  10. 程序员学习能力提升三要素