2

1つの非常にタフなdllで問題が発生しています。サイドdllを使用して、WindowsフォームアプリをWebカメラで動作させています。アプリケーションは、VS2012を搭載したPC、VS2012を搭載したラップトップでは正常に動作しますが、仮想マシンで実行されているWindowsXPではまったく動作しません。
JITメッセージが表示されます

System.IO.FileNotFoundException: Could not load file or assembly '---, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

多くの質問を防ぐために、私は自分で答えます:
はい、 dllは.exeを使用してディレクトリにコピーします
はい、「リリース」としてデプロイしました
はい、アプリケーションをx86ターゲットプラットフォームとしてコンパイルしまし た
はい、 dllをx86ターゲットとしてコンパイルしましたプラットフォーム
はい、 Windows XPをターゲットにするためにすべてのバージョンのvcRedistをインストールしました
はい、 WindowsXPをターゲットにするために3.0から4.0までの.NETをインストールしました


Visual Studioを搭載したコンピューターがそのdllで動作する理由がわかりませんが、XPでは動作しません。

4

2 に答える 2

2

Dependency Walkerは、DLLから欠落している依存関係を見つけて、XPがそれをロードできないようにするために使用するツールです。

「v110_xp」ツールセット(Visual Studio 2012-Update1で入手できるWindowsXPツールセット)を使用してネイティブC ++ DLLを構築しましたか?そうしなかった場合は、問題があります。デフォルトでは、通常のv110コンパイラ構成を使用してVS2012でビルドされたC ++コードは、Windows XPでは機能しないが、Vista以降を必要とする実行可能ファイルを生成します。

于 2013-03-05T19:05:58.417 に答える
0

'またはその依存関係の1つ'というフレーズに注意してください...それはおそらくあなたの問題であり、それ自体のdllではありません

dllがAPIを呼び出しているか、XPで使用できないdllを使用している可能性があります。

ディペンデンシーウォーカーはここであなたの友達です

于 2013-03-05T19:08:00.247 に答える