VisualStudio2005编译的版本无法启动,出现应用程序配置不正确的错误

VisualStudio2005编译的版本无法启动,出现应用程序配置不正确的错误,第1张

VisualStudio2005编译的版本无法启动,出现应用程序配置不正确的错误,第2张

这些方法是我在网上找到的:
方法一:
在C:\ Program Files \ Microsoft Visual Studio 8 \ VC \热地
ST \ Debug _ Nonredist \ x86 \以下文件是在Microsoft下找到的。VC80 . DebugCRT:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft . VC80 . DebugCRT . manifest
将这些文件复制到目标。
其他发布版本、MFC程序等。可以从redist下对应文件夹中的文件复制过来,文件夹后面有logos!
方法二:
修改编译选项,将/MD或/MDd改为/MT或/MTd,从而实现对VC运行时库的静态链接,运行时不再需要VC的dll。
方法三:
工程->属性->配置属性->常规->使用MFC,选择“在静态库中使用MFC”
生成的exe文件应该可以在其他机器上运行。
方法四:
你在你的vc8安装盘上找到了再分发包vcredist_xxx.exe,并和你的程序捆绑包一起安装
在大多数扩展机上,但是我还是在我的测试机上报告了一个应用程序配置错误。一开始我怀疑还是缺少dll。我复制了所有的MSVC *。将windows/system32目录下的dll文件复制到正在运行的机器上的本机运行目录下,但还是不行!※极度郁闷×…!后来实在没办法,就在VC环境下打开EXE查看其内嵌的manifest资源。我无奈的看了一会,突然发现这个manifest带来了两个版本CRT的依赖:
然后我打开了微软。VC80.CRT.manifest,而且看起来是这样的:
也就是说在我们EXE的manifest里面所以我去掉了项目设置的生成manifest的选项,手动更改manifest放到程序目录里面,发现已经可以运行了!
还有一个问题我不明白,就是为什么VC会在自傻的anifest里带两个依赖?我在网上查了一下,发现msdnonline上写着这个版本的‘8 . 0 . 50608 . 0’是在XP下使用的。这个版本的“8.0.50727.762”是在Vista(http://msdn.microsoft.com/en-us/library/ms235342(vs . 80)下使用的。aspx),但是我在我搞不清是错了还是别的什么的地方用了‘8 . 0 . 50727 . 762’。后来我在CRT的源代码里搜索‘8 . 0 . 50727 . 762’,找到了~‘8 . 0 . 50608 . 0’也在。
# if defined _USE_RTM_VERSION
# Define _ CRT _ ASSEMBLY _ VERSION " 8 . 0 . 50608 . 0 "
# else
# Define _ CRT _ ASSEMBLY _ VERSION " 8.0.50727.762 "
# endif
显然默认版本是“8 . 0 . 50727 . 762”,除非定义了_ USE _ RTM _ VERSION!那为什么我们的项目会产生两个版本的依赖?显然,这个地方是两者之一。一开始我怀疑是项目设置导致的,就把我们的项目复制了出来,把里面的文件删除了,复制了一些向导生成的文件,进行了编译。清单里只有一个‘8 . 0 . 50727 . 762’,说明项目设置没有问题!最后我怀疑是项目链接的库,因为有的库是用VC6或者VC2003编译的,但是有的库没有代码,编译不了,也没法试。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » VisualStudio2005编译的版本无法启动,出现应用程序配置不正确的错误

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情