加载dll动态库出错的解决方法

说明一下我的程序的情况,首先基于.Net2.0用C#写了一个界面程序,界面上有一个按钮,一按就会开始执行算法,由于算法要求效率较高,所以采用的C/C++写的。

其实也就是C#调用C/C++的动态库的问题,但是由于算法比较复杂,算法动态库又调用了其它开源动态库的里的一些函数。

界面程序是用VS2005写的,我的算法动态库也是用VS2005写的,但是它调用了GDAL18库。

编译成功后运行程序一直会出现这样的错误“加载DLL XXX 错误,由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。 (异常来自 HRESULT:0x800736B1)。“的错误。

首先确认GDAL18库的路径都已经放到环境变量或运行程序的根目录下了,但还是出现问题,说明不是找不到GDAL库的问题,很有可能是GDAL库版本不匹配的问题,用”Resource Hacker“软件打开 ”gdal18.dll“库一看,果然有这么一句”<assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8"......“

说明我们所有的GDAL库是用在VC9环境下编译的,而我们的VS2005是VC8环境,这样导致版本冲突,加载失败。

解决的方法:

一、下载2008的发布包软件进行安装,Microsoft Visual C++ 2008 SP1 Redistributable Package (x86) 会为 Visual C++ 库安装必要的运行时组件;

二、在只有VS2005的环境下编译GDAL(不能安装更高的版本,可以采用虚拟机),调用新编译的GDAL库。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值