C# 链接GDAL Gdal.AllRegister()、Ogr.RegisterAll()异常处理
C# 链接GDAL Gdal.AllRegister()、Ogr.RegisterAll()异常处理
标签(空格分隔): c# gdal
将gdal中cshape文件夹中8个dll拷贝到项目的/bin/debug下,并将 _csharp.dll链接至项目中时,我本人的程序会出现两个错误:
“OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常
“OSGeo.OGR.Ogr”的类型初始值设定项引发异常
第一个问题可以通过博客GDAL C# 开发环境配置得到解决。
其实第一个问题和第二个问题都是dll库的关联库没有全部拷贝至项目的/bin/debug下造成的。
解决方法就是要将gdal***.dll(*代表版本号)所有关联的dll都拷贝至/bin/debug
查询gdal***.dll的关联动态库
1、找到vs的命令提示符,如图
2、输入:dumpbin /dependents c:\…\…\…\gdal***.dll即可看到该dll所关联的dll
3、将gadl中能查到的属于上图中关联的dll,和gdal***.dll拷贝至项目的/bin/debug。最终还需要放在项目中的dll大致是这些:
此时程序就可以正常运行了。