LDR: LdrpWalkImportDescriptor()解决方案

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介:

今天编译一开源项目,他提供的是VC9的工程,我这边是VC10,首先,打开之后需要经过转换,一切正常,然后编译,出现一个简单的小的错误,更改之后编译通过,但是运行时出现下图所示的错误。

“应用程序正常初始化(oxc0150002)”失败,请单击“确定”,终止应用程序。

然后再调试输出信息中查看得到如下信息:


 
 
  1. LDR: LdrpWalkImportDescriptor() failed to probe F:\......\libpng.dll for its manifest, ntstatus 0xc0150002  
  2. 调试器:: 在进程加载过程中引发了未处理的无法继续的异常  
  3. 程序“[1964] Helloworld-win32.exe: 本机”已退出,返回值为 -1072365566 (0xc0150002)。 

这种情况到时比较多见了,一般都是链接库的问题,网上问这个问题的也很多,这里就给说明一下。出错信息说是libpng.dll的问题,那么我们就打开这个dll来检查一下吧。下图是该dll的版本信息:

基本上这版本信息上也看不出什么错误来,下面就只能查看该DLL的二进制信息了,打开之后,终于发现问题了,如下图所示:

选中的部分其中包含了“name="Microsoft.VC90.DebugCRT" version="9.0.21022.8"”,这里的name值说明编译该DLL是使用的VC9.0而且还是Debug版本的,而version值则是一个版本号,还真有些郁闷了,既然是发布,为什么还要编译Debug版本的呢?Debug版本需要环境高度一致才能兼容,release版本则不会有这些问题存在,如何解决这个问题呢?

方法一:卸载VC10,改装VC9,这个比较麻烦,不考虑了。
方法二:将对应版本的“Microsoft.VC90.DebugCRT”拷贝到system32中,一般位于VC的安装目录中的redist文件夹下,如下图所示,选中的Debug_NonRedist(其下的x64和x86)表示是Debug版本使用的,而另外两x64和x86则是release版本的。这里的截图暂时还是VC10的,路径为:Microsoft Visual Studio 10.0\VC\redist\Debug_NonRedist\x86

方法三:直接找到libpng的源代码,自己来编译DLL(个人比较推荐这种方式)。
因此,我们以后在发布程序时也需要注意这样的问题,以免出现这样的不兼容的情况。






本文转自 yarin 51CTO博客,原文链接:http://blog.51cto.com/yarin/422187,如需转载请自行联系原作者

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
算法 Java 调度
死锁预防与解决方案
死锁预防与解决方案
|
6月前
|
前端开发 安全 JavaScript
有哪些常见的前端问题和解决方案
【4月更文挑战第13天】前端开发常见问题及解决方案:页面渲染性能优化(减少重绘、回流,利用GPU加速,代码拆分)、响应式设计(媒体查询、弹性布局)、浏览器兼容性(使用前缀,兼容性库,浏览器嗅探)、事件处理(事件委托、防抖节流)、代码组织(模块化、构建工具)、安全性(输入验证、HTTPS、安全HTTP头)和资源加载(CDN、资源优化、错误处理)。
490 6
|
Java Spring
解决方案 --[restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. ERROR 9680 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter
|
存储 编解码 监控
报告厅解决方案
大型单位、企业都建有报告厅,单位搭建报告厅的目的是为了召开各类会议、学术讨论、演讲、报告、新闻发布、多媒体教学培训、观看电影等活动提供卓越的音质效果、清晰的画面显示以及简单便捷的集中控制。报告厅通常会涉及举办活动时将现场画面的保存记录、活动画面以直播的形式在报告厅之外的其他屏幕上观看(因为报告厅容纳人数有限的原因)。针对这两个需求我们做了以下解决方案
|
Java
开发中遇到的问题&解决方案(八)
以前的一个老项目里使用过ZXing进行会员和门店二维码的生成操作,当时出现过Java版本升级后不兼容的问题,很是麻烦,于是替换成了hutool里的二维码生成,下面我们来看看具体的实现。
201 0
开发中遇到的问题&解决方案(八)
|
Java Linux 数据安全/隐私保护
开发中遇到的问题&解决方案(六)
之前的项目里有用到FTP,需要使用FTP把图片及一些必要文件上传到第三方的FTP服务器上,所以会涉及FTP连接,创建用户,创建文件夹,文件上传等,项目里选用的还是hutool包装的FTP工具类,下面来看看这些功能的在hutool里是怎么包装的。
534 0
开发中遇到的问题&解决方案(六)
|
设计模式 前端开发 Java
开发中遇到的问题&解决方案(一)
在开发过程在我们往往会遇到很多的开发阻碍或者因为原生框架的不支持导致的一系列问题或者有的不是问题,是我们使用普通的大量的复制粘贴改改就能用的代码去实现功能,这样使得代码很冗余,我们能不能去尝试找一些好的方案比如采用设计模式这些去优化我们的代码,实现代码简洁明了,易扩展呢?答案是肯定的。这个系列文章会使用案列加解决方案的形式为大家讲解,那下面我们开始吧。
752 0
开发中遇到的问题&解决方案(一)
|
安全 机器人 数据安全/隐私保护
开发中遇到的问题&解决方案(九)
在我们的系统里验证码是必不可少的,比如注册登录时,忘记密码时,设置支付密码时或者支付下单时,那验证码的作用在哪里呢?其实就一条为了防止来着黑客和机器人恶意的攻击,那么下面我们来看看hutool里验证码工具类。
267 0
开发中遇到的问题&解决方案(九)
|
网络协议 数据安全/隐私保护
开发中遇到的问题&解决方案(七)
邮件发送相信大家都不陌生吧,一般是用于电商平台比如京东下单后订单信息的邮件发送或者移动这种的月度账单的邮件发送,再有就是通过绑定的邮箱进行密码重置,由邮箱跳转到指定的密码重置页进行密码重置操作。那么下面我们来看看hutool里对于邮件发送的包装是怎么样的。
202 0
开发中遇到的问题&解决方案(七)
|
人工智能 并行计算 算法
化工行业解决方案
针对化工产业的发展现状和问题,必须把绿色发展、责任关怀、包容性发 展等作为重点,整体推进全行业的转型升级和可持续发展。数字化将成为 这一转型过程的关键推动力。
化工行业解决方案