dll文件加载运行加载的14001错误,由于应用程序配置不正确,应用程序未能启动




dll文件加载运行加载的14001错误,由于应用程序配置不正确,应用程序未能启动

2022-07-20 19:06:57 网络知识 官方管理员

最近在处理项目问题的的时候发现了这么一个问题,就是我们的程序在调用第三方提供的dll文件的时候在一台机器上面会报14001的错误,但是在另一台机器上面不会。两台机器上面的操作系统是相同的。针对这个问题和这个错误码,查找了很多的相关资料。

vc错误查找的给予的对于14001的错误的解释:由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。

下面是搜集的一些网络资料针对这个问题的说明和解决方法个人感觉还是很有参考意义的:

在VS2005下用C++写的程序,在一台未安装VS2005的系统上,
用命令行方式运行,提示:
系统无法执行指定的程序
直接双击运行,提示:
由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题

以前用VC6和VS2003的话,如果缺少库文件,是会提示缺少**.dll,但是用VS2005却没有这样的提示。

自己实验了一下,感觉以下几种解决办法是可行的:
方法一:
在类似C:\ProgramFiles\MicrosoftVisualStudio8\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和你的程序捆绑安装。

如果安装MicrosoftVisualC++2005出现如下错误↓:

事件查看器显示:产品:MicrosoftVisualC++2005Redistributable--Error1935.安装程序集Microsoft.VC80.ATL,type="win32",version="8.0.50727.4053",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"过程中发生错误。请参阅帮助和支持获取详细信息。HRESULT:0x80070422。程序集接口:IAssemblyCacheItem,功能:Commit,组件:{97F81AF1-0E47-DC99-A01F-C8B3B9A1E18E}

解决方法:启动WindowsModulesInstaller服务,再安装。OK,解决。

http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/66bc8cab-c134-49a8-85e5-37ca9efbdeb4/

个人问题解决过程:

1.考虑的是两个方面:

一个是程序调用的dll是否提供了所要的方法;

一个是dll所依赖的dll是否完整。
这两方面都是通过depends工具来查看

2.我的问题是我用的是别人提供的dll文件自己不可以去更改dll文件的生成方式,因此所做的工作就是设法去导入dll所依赖的dll文件。

(1)配置系统环境变量的path路径使dll做可能依赖的系统dll文件能够找到依赖的dll。

(2)推测第三方所提供的dll开发时候应该用的是vs2005或者vs2008在或者就是vs2010,然后所提供的dll文件或许就是动态加载的dll,所以安装了vcredist_x86的vs2005,vs2008以及vs2010版本的,这个地方的操作对于我解决问题起了作用,但是具体是哪一个这个没有去确定

(3)为了使自己程序运行的环境没有必要都去安装vcredist_x86所以找到vcredist_x86安装之后对应的dll文件和调用的第三方的dll放在同一个目录下面,也可以放在C:\WINDOWS\system32但是path路径中的配置一定要有,一般来说都是会有的。

通过上面的三个方面个人的问题是解决了,当然具体到个人的项目里面还有很多的方面要考虑,但就这个dll加载的14001错误,上面的解决方法还是ok的。网上的相关资料还是很多的,希望个人整理的这些对你有小小的帮助。针对vcredist_x86的dll文件以及vs2005,vs2008和vs2010对应的exe安装文件可以搜一下,我也把我搜到的上传一下,共享。

据其他网友推荐使用下面的方法

Win7中运行某些软件时,突然提示出错信息应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具。

查看win7应用程序事件日志:计算机——>右击——>管理——>事件查看器——>应用程序和服务日志

出现这个问题是因为安装windows7后,或使用ghost版本安装后,windows7没有安装VisualC++库,而有些软件需要VisualC++库

所以到微软官方网站下载:MicrosoftVisualC++2005SP1RedistributablePackage(x86)下载:http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=zh-cn

有些软件可能是VC2008开发的,可以下载安装MicrosoftVisualC++2008,

MicrosoftVisualC++2008下载地址如下:http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=zh-cn

另外建议下载MicrosoftVisualC++2010可再发行组件包(x86),原因在于最新版本保持了向下兼容的特性:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=A7B7A05E-6DE6-4D3A-A423-37BF0912DB84

注意:安装完了后,还需要重启一下计算机。

还有一种情况是:所安装的程序不支持WIN7系统,请留意该版本的程序所支持的系统

比较方便的方法直接下载VCRedistInstaller

软件名称:
VCRedistInstaller(vc运行库)V1.6英文免费安装版
软件大小:
47.7MB
更新时间:
2017-06-17

发表评论:

最近发表
网站分类
标签列表