0

VS2010 で opencv 2.4 を使用して生成された 64 ビット dll (Imageloc.dll) があります。Windows 7 で呼び出すと正常に動作します。ただし、Windows 2000 サーバーで実行すると、

未処理の例外: System.IO.FileNotFoundException: ファイルまたはアセンブリ 'Imageloc.dll' またはその依存関係の 1 つを読み込めませんでした。指定されたモジュールが見つかりませんでした。Test.Program.Main (文字列 [] args) で

Windows 7 と同様に、Windows 2000 で環境パスの値を次のように設定しています。

C:\Applications\opencv\build\x64\vc10\bin; C:\Applications\opencv\build\common\tbb\intel64\vc10;

c:\Applications\opencv にインストールされた openCv 2.4 製品

Visual Studio は Windows 7 にインストールされていますが、Windows 2000 にはインストールされていません。

どんな助けでも大歓迎です。

更新: Windows 7 を搭載しているが Visual Studio を搭載していない別のコンピューターで実行したところ、同じエラーが発生しました。Visual Studio を使用して Windows 2000 で実行したところ、うまくいきました。Visual Studio はどのように機能しますか?

dll のプログラムは c++-cli で記述され、 /MD でコンパイルされます。C ランタイム ライブラリの一部の dll または CLR dll に関連している可能性はありますか?

4

4 に答える 4

1

Windows 2000だけでなく、32ビットオペレーティングシステムで64ビットDLLを実行するのに問題があると思います...

于 2012-07-18T23:49:38.230 に答える
1

Win2K マシンに Visual Studio をインストールするとプログラムが動作するようになる場合は、Visual C++ ランタイムが不足している可能性があります。ランタイムを必要としないように C++ コードをコンパイルするように設定できますが、単一の展開の場合は、ランタイムをインストールするのと同じくらい簡単です。

x86: http://www.microsoft.com/en-us/download/details.aspx?id=5555

x64: http://www.microsoft.com/en-us/download/details.aspx?id=14632

于 2012-07-19T03:12:03.163 に答える
0

今回は質問をより注意深く読んだので、Visual Studio 2010 アプリケーションは Windows XP Service Pack 2 より前のバージョンでは実行できないことを指摘できます。これは、古いバージョンの Windows には使用するすべての API が含まれていないためです。ただし、Windows 2000 で Visual Studio 2010 でコンパイルされた C++ DLL を使用する問題に対する回答の 1 つは、不足しているインポートを実装するスタブ ライブラリを提供できる可能性があるという点で、可能な回避策を示唆しています。

于 2012-07-19T18:41:25.657 に答える