加载dll动态库出错的解决方法
2012-02-06 20:25
218 查看
说明一下我的程序的情况,首先基于.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库。
其实也就是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库。
相关文章推荐
- 加载XX.dll时出错的解决方法
- 当加载XXXX.dll文件时出错的解决方法
- LoadRunner录制脚本时报加载GrooveUtil.dll出错的解决方法
- BCB中使用Image控件动态加载GIF、JPG文件出错的解决方法
- 基于odb的dll在xp系统下动态加载运行异常的原因及解决方法
- 加载dll出错的解决方法
- PHP 加载 curl.dll 扩展失败的原因和解决方法
- 解决IE6下JS动态设置图片IMG的SRC时图片无法加载错误的方法
- [置顶] Appserv中不能加载php_mcrypt.dll的解决方法
- 使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题
- 解决2003/2008下IIS加载Rewrite.dll不成功的方法
- android studio加载 so文件以及出错。android java.lang.UnsatisfiedLinkError: 分析及解决方法
- 解决:ScrollView嵌套ListView导致无法正确计算ListView的高度之动态加载图片高度常规方法失效。
- 解决 PHP 加载 dll 模块出错的问题
- 【解决方法】windows7出现无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-|1-1-0.dll
- 使用jquery的load方法设计动态加载,并解决被加载页面JavaScript失效问题
- c# 动态加载dll文件,并实现调用其中的方法
- php_mcrypt.dll无法加载解决方法
- 无法加载 DLL“rasapi32.dll”的问题的解决方法
- windows 7下 soudmax.dll出错问题的解决方法