易语言教程_易语言源码_易语言写挂_易语言论坛_看流星社区

 找回密码
 注册
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
查看: 158|回复: 0

VC编译程序,运行时提示运行错误“由于应用程序的配置不正确,……”解决方法

[复制链接]
发表于 2017-6-3 14:26:44 | 显示全部楼层 |阅读模式
VC编译程序,运行时提示“由于应用程序的配置不正确,……”解决方法
下面分三种情况对运行错误“由于应用程序的配置不正确,……”进行解决,包括VC6.0、VC.NET2003、VC2005运行错误。
1、 VC6.0程序的一个运行错误
VC6.0程序的一个运行错误“由于应用程序的配置不正确,……”提示错误时,是由于编译程序时使用了共享连接库的方式,在操作系统支持MFC框架且有MFC*.dll文件时是可以正常运行,但是在没有MFC*.dll文件时会出现运行错误,需要在可执行的目录下增加下列文件:MFC42D.DLL,MFCO42D.DLL,MSVCP60D.DLL,MSVCRTD.DLL四个文件,RELEASE版时需要增加MFC42.DLL,MFCO42.DLL,MSVCP60.DLL,MSVCRT.DLL四个文件。(这些文件可以在VC编译器安装目录中找到,或者在系统目录下找到)
2、 VC.NET2003程序的一个运行错误
VC.NET2003程序的一个运行错误“由于应用程序的配置不正确,……”提示错误时,是由于编译程序时使用了共享连接库的方式,在操作系统支持MFC框架且有MFC*.dll文件时是可以正常运行,但是在没有MFC*.dll文件时会出现运行错误,需要在可执行的目录下增加下列文件:MFC71D.DLL,MFCO71D.DLL,MSVCP71D.DLL,MSVCRTD.DLL四个文件,RELEASE版时需要增加MFC71.DLL,MFCO71.DLL,MSVCP71.DLL,MSVCRT.DLL四个文件。。(这些文件可以在VC编译器安装目录中找到,或者在系统目录下找到)
3、 VC2005程序的一个运行错误
VC2005程序的一个运行错误“由于应用程序的配置不正确,应用程序未能启动,重新安装...”
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,也出现这样问题的话,就试试上面的方法吧.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|看流星社区  |网站地图

GMT+8, 2017-10-24 19:12 易语言论坛 易语言导航

Powered by 看流星社区 X3.2

©2011-2016 最好的辅助编程技术论坛

快速回复 返回顶部 返回列表