应用程序无法正常启动0xc0150002怎么解决

C/C++(135)
知识积累(53)
我也遇到过此问题,解决办法:
方案一: 在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的根据时戳而决定是否更新清单文件。
方案二:不嵌入清单文件。在项目的“属性|配置属性|清单工具|输入和输出”中的“嵌入清单”选择“否”,从而在生成exe文件时附随生成一个清单文件(默认情况下,其文件名为exe文件的全名加上“.manifest”),避免了嵌入清单文件可能失败的问题。
最近做一个项目写了一个VC6下的MFC程序,结果传到别人的机子上(WIN7)出现了应用程序正常初始化(0xc0150002)失败的问题,当时还以为就是WIN7的问题,后来把程序拷贝到一台WINXP SP3的程序下还是不行。
&&& 为什么我的机子上可以,而别人的机子上运行不了呢?
&&& 开始google一下,找到了解决的一个办法——在程序运行出错的时候,右键“我的电脑”,然后点击“管理”,再点击“事件查看器&,最后看下“系统”,信息如下:
&&& (1)找不到附属汇编 Microsoft.VC80.DebugCRT,上一个错误是 参照的汇编没有安装在系统上。
&&& (2)Resolve Partial Assembly 为 Microsoft.VC80.DebugCRT 失败。 参考错误消息: 参照的汇编没有安装在系统上。
&&& (3)Generate Activation Context 为 C:/scanfile/Debug/libclamavd.dll 失败。 参考错误消息: 操作成功完成。
&&& 可以判断是libclamavd加载的时候出了点问题了,看了下它的manifest文件,其依赖库是Microsoft.VC80.DebugCRT ,这样问题就很明显了,这个dll是在VS2005下编译的,而别人的机子上没有这个环境,我们所编译生成的应用程序由于缺少必需的Debug版本的VC运行库而发生错误。
&&& 解决方法:到我的机子上的vs2005的安装目录下,搜索名字中包含串Microsoft.VC80.DebugCRT的文件,共有3个dll文件(msvcm80d.dll,msvcp80d.dll,msvcr80d.dll)和一个manifest文件(Microsoft.VC80.DebugCRT.manifest),拷贝到别人机子上的工程可执行文件目录下,问题就解决了。
&&& 从这个问题可以发现几点:
&&& (1)善用工具可以帮助定位问题:事件查看器,depends walker等
&&& (2)搜索效率,比如这个问题直接搜 ”应用程序正常初始化失败 0xc0150002“肯定会得到很多噪音信息。。。
&&&& PS:网上的解决办法还有就是说下载vcredist_x86,我试了下不大好使。。。
昨天刚装的VS2010,配置了一下dcmtk,想试验一下,把vs2008上编译的程序拿过来试了下,编译通过,运行时出问题了,提示应用程序无法正常启动(0xc0150002)。
& 网上搜了好多资料,都是说装个vcredist_x86.exe,试了下,问题依旧,各个版本的vcredist_x86.exe都试验过了,还是不行。无耐只得自己看出错信息了,自己引用了一个自己写的用测试的dll文件,加载到那个地方就是出错,觉得应该是dll的问题,然后又找出dll的源文件编译了一个新的,然后复制过去,替换了果然运行通过了,心里甚是激动,为了证实确实是dll的问题,把原来的dll文件拷回去,运行失败!OK,我觉得这样可以100%确定是这里的问题了吧。看看时间都凌晨1点多了,哎!
& PS:个人总结:程序运行出错,先看错误信息,从而利用错误信息精确定位错误类型。不要盲目直接google、百度,导致同一个错误的原因可能很多。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:163220次
积分:2591
积分:2591
排名:第10525名
原创:40篇
转载:374篇
(1)(4)(2)(1)(1)(3)(4)(6)(10)(10)(11)(1)(4)(14)(11)(11)(11)(16)(6)(8)(6)(24)(8)(19)(21)(17)(18)(27)(29)(24)(11)(5)(12)(52)(8)下次自动登录
现在的位置:
& 综合 & 正文
VS2010 MFC exe独立系统环境运行
用程序无法正常启动0xc0150002
如何让一个VS 生成的 exe 在没有安装VS 以及 依赖项dll 的电脑上运行,尝试了一下,将中间遇到的问题记录一下。
1. 在vs里面编译运行可以,但是点击Debug里面的.exe却显示如下问题:
目录下已经添加此dll文件,一般情况下,我们会把程序中调用到的dll 文件放于.exe同一目录下。
显示为dll文件问题,后发现为路径问题,我的.exe文件 路径为:工程目录/x64/Debug/**.exe,后将 .exe文件拷贝至 工程目录/Debug/**.exe ,点击可以运行。因为我在工程目录下添加了lib、include、Resource等文件夹,中有关路径的问题导致的。
在其他电脑上
试用的另一台电脑有安装vs等,但是不管是点击exe还是直接用vs打开编译都会出现此类错误。
查找资料有说将设置为在静态链接库中使用MFC和MT,但是如果使用的静态库会有很多错误,未识别的外部符号等,还需要自己重新静态编译库,还是pass掉此种方法。
考虑到是因为机器上的dll文件不相同所致,可能是机器上没有需要的dll文件,即使有也不能保证dll文件的版本相同。
借助于工具 Dependence 来查看所生成的exe文件依赖的dll文件有哪些 ,可以从此网站下载软件
无视红色的错误提示信息,左侧窗口可以查看.exe都是依赖于哪些dll文件,将这些dll文件全部拷贝到.exe文件夹目录下,可以运行。
opencv类的都在opencv安装目录下OpenCv244\opencv\build\x64\vc10\bin;
msvcp100.dll等在 s安装目录\VC\redist\x64\Microsoft.VC100.CRT和\VC\redist\Debug_NonRedist\x64\Microsoft.VC100.DebugCRT;
需要的系统的dll文件都在C:\Windows\System32,在我需要的项目中光此文件下的dll文件就拷贝了二十多个。
3.为了让32位与64位的电脑都能运行,要将工程改为32位。
在X64 win7 系统下 vs2010建立工程设置为 win32 调用 opencv 32位库以及配置了32位的dll文件,编译可以通过,运行出现错误:
应用程序无法正常启动0xc000007b
依然是dll文件问题,dll文件没有在搜索路径上,或者dll文件位数不对。
在工程中Configuration Properties-& VC++ Directories -& Executable Directories中添加 bin路径,没有用,虽然其中默认包括了 $(PATH)。
需要将dll文件放于exe同目录下,或者加入系统环境变量path。
4. 同样是3的问题中,将exe所有依赖的dll文件全部换为32位的,程序报**.dll文件没有被指定在windows运行,或者包含错误。
我以为系统32位dll文件在C:\Windows\SysWOW64路径下。sysWoW64 (Windows-on-Windows 64-bit)是一个Windows的子系统,
能够运行32-bit 应用
程序, 并且在所有的64-bit 版本的windows上都存在。
之前换成系统在C:\Windows\System32下的dll文件会报错,后来就换成自认为32位dll所在的C:\Windows\SysWOW64,两者程序报错相同。
后从网上从新下载dll文件拷贝到exe同目录下,可以运行。
后发现所调的文件在C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include下。
5. 问题4解决后,程序的某些功能失效,比方说点击一个按钮,打开一个对话框,这时候对话框弹不出来。
这种情况,我在测试电脑上装了vs2010后,把 exe同目录下系统dll文件删除,这样程序会调用系统的dll文件,这个时候对话框可以打开,发现是所调用的dll文件不同。
且opencv的功能有问题,cvcapture一直返回NULL,疑似是dll文件拷贝不全的原因,将dll文件全部拷贝到exe同目录下没有问题。但是另用一台电脑依旧只返回NULL,此原因没有确切搞清楚。
&&&&推荐文章:
【上篇】【下篇】win7 cad2010安装完成后打开出现 应用程序无法正常启动(0xc0150002)是怎么回事啊_百度知道对vc6.0平台调试出现问题,应用程序无法正常启动(0xc0150002).请单击“确定”关闭应用程序
[问题点数:40分,结帖人wumin]
对vc6.0平台调试出现问题,应用程序无法正常启动(0xc0150002).请单击“确定”关闭应用程序
[问题点数:40分,结帖人wumin]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
2013年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第七
本帖子已过去太久远了,不再提供回复功能。应用程序无法正常启动(0xc0150002)!平台--win7旗舰+vc2010旗舰+opencv2.1
应用程序无法正常启动(0xc0150002)!平台--win7旗舰+vc2010旗舰+opencv2.1
问题描述:用vc2010开发关于图像处理的程序(所以用到了opencv),编译运行时在release模式下成功运行,但在debug模式下只能成功生成解决方案,而不能成功运行,运行时提示如下:vc输出问题:程序“[3752] cv_zhangwen.exe: 本机”已退出,返回值为 - (0xc0150002)。求高手解决,冰天雪地求解决、、、、区区100分奉上,还望笑纳。可以追加! 只要能解决,倾家荡产,在所不惜~···
不区分大小写
查看系统日志,应该是系统上缺少相应的运行库或是openMP
我也是这个问题啊, 同样式vc2010, 但是我的是release模式下不能运行, debug模式下可以运行...
略懂社热议
等待您来回答
编程领域专家
&SOGOU - 京ICP证050897号

我要回帖

更多关于 0xc0150002 一键修复 的文章

 

随机推荐