在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近在处理项目问题的的时候发现了这么一个问题,就是我们的程序在调用第三方提供的dll文件的时候在一台机器上面会报14001的错误,但是在另一台机器上面不会。两台机器上面的操作系统是相同的。针对这个问题和这个错误码,查找了很多的相关资料。 vc错误查找的给予的对于14001的错误的解释:由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 下面是搜集的一些网络资料针对这个问题的说明和解决方法个人感觉还是很有参考意义的: 在VS2005下用C++写的程序,在一台未安装VS2005的系统上, 以前用VC6和VS2003的话, 如果缺少库文件,是会提示缺少“**.dll”,但是用VS2005却没有这样的提示。 自己实验了一下,感觉以下几种解决办法是可行的: msvcm80d.dll 把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以正确运行了。 方法二: 方法三: 工程-》属性-》配置属性-》常规-》MFC的使用,选择“在静态库中使用mfc” 方法四: 你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装。 如果安装Microsoft Visual C++ 2005 出现如下错误↓: 事件查看器显示:产品: Microsoft Visual C++ 2005 Redistributable -- Error 1935.安装程序集“Microsoft.VC80.ATL,type="win32",version="8.0.50727.4053",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"”过程中发生错误。请参阅帮助和支持获取详细信息。HRESULT: 0x80070422。程序集接口: IAssemblyCacheItem,功能: Commit,组件: {97F81AF1-0E47-DC99-A01F-C8B3B9A1E18E} 解决方法:启动 Windows Modules Installer 服务,再安装。OK,解决。 http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/66bc8cab-c134-49a8-85e5-37ca9efbdeb4/ 个人问题解决过程: 1.考虑的是两个方面: 一个是程序调用的dll是否提供了所要的方法; 一个是dll所依赖的dll是否完整。 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 和 vs 2010对应的exe安装文件可以搜一下,我也把我搜到的上传一下,共享。 据其他网友推荐使用下面的方法 在Win7中运行某些软件时,突然提示出错信息“应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具。” 查看win7应用程序事件日志:计算机——>右击——>管理——>事件查看器——>应用程序和服务日志 出现这个问题是因为安装windows7 后,或使用ghost版本安装后, 所以到微软官方网站下载:Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)下载:http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=zh-cn 注意:安装完了后,还需要重启一下计算机。 比较方便的方法直接下载 VC Redist Installer 由于应用程序配置不正确,应用程序未能启动等绿色软件不能打开,一般都是缺少必要的vc运行库。 VC++运行库有什么用? 我们为什么要使用它?什么时候需要它?太深奥的理论就不多说了,举个简单的例子,我们从网上下载来一些绿色精简软件或个人软件作品或某些游戏,运行的时候发现报错,常见的有:缺少或丢失msvcp71.dll、msvcr71.dll、msvcrt.dll、msvcrt.dll等;无法启动此程序,因为计算机中丢失 mfc*.dll。尝试重新安装该程序以解决此问题。因为这些软件是用采用Microsoft Visual Studio编写的,它们运行的过程中必须使用公用的DLL运行库,即上在所说的VC运行库。 了解了原因之后,解决方法也就明白了,有两种途径:一是安装Microsoft Visual C++运行库集成包;二是去网上寻找对应版本的VC运行库DLL文件,然后再手动复制到系统目录里。前者肯定不行,那软件太庞大了,没有必要为了几个运行库文件去下载上G的文件。后者太麻烦了,要去网上寻找,下载后还要自己手动导入,而且32位和64位系统的导入目录是不同的。 vc运行库包含组件: 现在好了,有了VC Redist Installer,一切就变得简单了,它内置了全部的VC运行库DLL文件,其组件包括: |
请发表评论