2016-12-28 70 views
0

VTKをC#で使用して、VTK/VTSファイルを読み書きしようとしています。私は基本的なアプリケーションを作成し、ActiViz.NET.x64(v5.8.0)と呼ばれる64ビットVTK .NETラッパーパッケージをインストールしました。ActiViz.NET.x64(v5.8.0):DLL 'Kitware.VTK.vtkFiltering.Unmanaged.dll'を読み込めません。

パッケージは問題なくインストールされ、Kitware.VTK名前空間にアクセスできましたが、VTKオブジェクトを作成しようとすると、アンマネージDLL読み込みエラーが発生しました。 DLL「Kitware.VTK.vtkFiltering.Unmanaged.dll」をロードできません::

型「System.DllNotFoundException」の未処理の例外はKitware.VTK.dll

で発生しました追加情報指定されたモジュールができました見つけられない。 (HRESULTからの例外:0x8007007E)

私は、正確なコードはここでは関係ないと思いますが、私は次の行で例外が発生しました:私はWindowsを使用してい

vtkStructuredGrid structuredGrid = vtkStructuredGrid.New();

10 x64、Visual Studio 2015、ターゲット.NET Frameworkは4.6.2、ParaView 4.1と5.2がインストールされています。問題のDLLは、アプリケーションのbinディレクトリにありますが、Windows/System32ディレクトリにコピーしようとしましたが、結果は同じです。

dllの読み込みで問題がどのようなものか正確に把握する方法はありますか?

答えて

-1

最初に、欠落しているDLLを探しているプロセスがどこにあるのかを知りたかったのです。私はSysinternals SuiteとそのProcess Monitorを使用しました。

enter image description here

私は私の自己ホスト型アプリで使用される私の.NETライブラリでVTKを参照。自己ホスト型のアプリケーションはスタートアッププロジェクトだったので、ランタイムはライブラリの実際の場所ではなく、アプリケーションのディレクトリにある見つからないDLLを探しました。

不足しているKitware.VTK.vtkFiltering.Unmanaged.dllをそのディレクトリにコピーした後、Process MonitorはDLLが正常に読み込まれたことを確認しましたが、以前と同じ例外があります。

私はライブラリとアプリのbinディレクトリを比較しましたが、Kitware.mummy.Runtime.dllとKitware.VTK.dllのみが自動的にそこにコピーされていると思いました。 他のすべてのVTK DLLをアプリのビンにコピーして、それがやっと働いた。

例外のエラーメッセージは、最初は詳細ではありませんでしたが、ActiViz.NETパッケージに問題がある可能性が高いと思います。

0

コード内で使用する必要がない場合でも、Activizインストールbinディレクトリからすべてのdllをコピーする必要があります。 C:¥Program Files¥ActiViz.NET 5.8.0 OpenSource Edition¥bin

管理対象.Net DLLは、アンマネージドVTKライブラリのラッパーです。 Mummy.dllはこの仕事のためです。