C#リンクGDAL Gdal.AllRegister()、Ogr.RegisterAll()例外処理



C Link Gdal Gdal Allregister



ラベル(スペース区切り):c#gdal


gdalのcshapeフォルダーにある8つのdllをプロジェクトの/ bin / debugにコピーし、_csharp.dllをプロジェクトにリンクすると、自分のプログラムで2つのエラーが発生します。
'OSGeo.GDAL.GdalPINVOKE'の型初期化子が例外をスローします
'OSGeo.OGR.Ogr'の型初期化子が例外をスローします



最初の質問はブログに書くことができます GDAL C#開発環境の構成 解決されました。

実際、最初の問題と2番目の問題は、dllライブラリに関連付けられているライブラリがプロジェクトの/ bin / debugにコピーされていないことが原因で発生します。
解決策はgdal ***。dll(を置くことです * バージョン番号に代わって)関連するすべてのdllが/ bin / debugにコピーされます




gdal ***。dllのダイナミックライブラリをクエリします

1、示されているように、vsのコマンドプロンプトを見つけます

7dd80fc7bd8bc93bab315cf65988140.png-63.4kB

2、入力:dumpbin / dependents c: ... ... ... gdal ***。dllを使用して、dllに関連付けられているdllを確認します

ee8c230f50d88183a6df41b1c17e500.png-29.8kB

3、gadlは上の図に関連付けられたdllに属し、gdal ***。dllはプロジェクト/ bin / debugにコピーされます。最後に まだ必要 プロジェクトに配置されるdllは、おおよそ次のとおりです。

3686eb0c672602bd191f0e64e8e8719.png-5.1kB




この時点で、プログラムは正常に実行されます。