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のコマンドプロンプトを見つけます
2、入力:dumpbin / dependents c: ... ... ... gdal ***。dllを使用して、dllに関連付けられているdllを確認します
3、gadlは上の図に関連付けられたdllに属し、gdal ***。dllはプロジェクト/ bin / debugにコピーされます。最後に まだ必要 プロジェクトに配置されるdllは、おおよそ次のとおりです。
この時点で、プログラムは正常に実行されます。