zoukankan      html  css  js  c++  java
  • GDAL C# “OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常 解决方法

            在使用C#版本的GDAL开发的时候,编译正常,启动的时候就会提示:“OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常。

            对于这个问题,原因主要就是没有找到dll导致的,在使用的时候不但要把C#的那八个dll拷贝到exe所在目录,还需要把gdal19.dll及其依赖的dll都拷贝过去,很多同学以为只要有了那八个C#版本的dll就ok了,其实是不对的,C#版本的8个dll只是导出了C#的接口而已,调用的还是C++版本的gdal库。

            对于Python版本也是一样,需要将gdal19.dll及其依赖的dll全部拷贝到python的安装目录下。


    ————————华丽的分割线,下面2012-12-14日添加————————————————

           在使用C#的版本的时候一定要注意编译GDAL的时候用的编译器和版本,比如你下载的GDAL的用VS2008编译的32位的dll,那么在C#中使用的时候先要安装Visual Studio2008的C++运行库,具体可以去微软的官方搜(注意VS的版本也有好多,有SP1的版本,还有没有打过SP的版本,运行库都不一样)。完成了这些步骤,建议使用GDAL的那些exe工具测试一下,双击其中一个,如果可以弹出帮助信息说明OK,如果不行请继续找对应的C++运行库。

          上面只是说明GDAL在你的系统中可以正常工作,下面是在使用C#调用的时候,需要把配置管理器中的anycpu进行修改,如果GDAL是32位的,那么这里需要创建一个X86的,如果是64位的,创建一个X64的,切忌一定要对应,否则就会引发一些异常,比如下面的图片所示。


  • 相关阅读:
    知识图谱
    spring mvc踩坑记
    学习计划
    迷茫中看见一道曙光
    面试复习准备
    关于配置httpd2.4.18+php5.6
    notepad++ 等用正则表达式自动添加sql引号(宏)
    JDK1.8的HashMap实现原理和源码解析
    Java垃圾回收机制
    sql server 表分区
  • 原文地址:https://www.cnblogs.com/xiaowangba/p/6314020.html
Copyright © 2011-2022 走看看