0

Unity3d というゲーム エンジンのプラグインである DLL を使用しています。Windows 7 64 ビット Ultimate Edition の Visual C++ Express 2010 で DLL を作成しました。DLL は、最初に作成されたマシン上で正しく機能します。

問題は、DLL が別のマシンの Unity3d エディターで機能せず、基本的に DLL がその依存関係の一部を欠いていることを示すエラーを与えることです。ターゲット マシンが Windows 7 Home 64 ビットを実行している (これが該当する場合)

Dependency Walker のエラー ログの結果:

エラー: "c:\users\dewayne\desktop\shared\vrpnplugin\unityplugin\build\release\OPTITRACKPLUGIN.DLL" の Side-by-Side 構成情報にエラーが含まれています。サイド バイ サイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーション イベント ログを参照するか、コマンド ライン sxstrace.exe ツールを使用してください (14001)。
エラー: 暗黙的に依存するモジュールにエクスポート関数がないため、少なくとも 1 つのモジュールに未解決のインポートがあります。
エラー: CPU タイプが異なるモジュールが見つかりました。
警告: 少なくとも 1 つの遅延読み込み依存モジュールが見つかりませんでした。
警告: 遅延ロード依存モジュールにエクスポート機能がないため、少なくとも 1 つのモジュールに未解決のインポートがあります。

Visual C++ Express 2010 プロジェクトとソリューション ファイルは、ここにあります。zip は 79MB で、依存関係も含まれています。

問題の DLL は OptiTrackPlugin.dll です。

4

2 に答える 2

1

dll の依存関係を確認します。私は depends.exe 依存関係ウォーカーを使用しています。以前は Visual C++ にバンドルされていましたが、MS では提供されなくなりました。個別にダウンロードできます: http://www.dependencywalker.com/

于 2010-12-16T23:21:12.953 に答える
0

おそらく、DLL を使用しているクライアントで MS C++ ランタイムを見逃していたのでしょう。Visual Studio でビルドした場合は、クライアントに CRT と C++ RT をインストールする必要があります。Dependency Walker は確実に検出します。

乾杯。

于 2011-03-16T11:50:25.427 に答える