2

私はVS2008で構築しているC++プロジェクトを持っています。このプロジェクトは、VS2005 を使用してビルドされたライブラリ (DLL + インポート ライブラリ) にもリンクし、VS2005 デバッグ CRT ライブラリをロードします (すべてがデバッグ ビルドです)。

VS2008 でビルドされたこの実行可能ファイルを実行しようとすると、VS2005 が SP1 と共にインストールされていても、VS2005 DLL がデバッグ CRT ライブラリを見つけられないため、ロード時にエラーが発生します。Windows の更新プログラムもチェックしたので、これ以上何ができるかわかりません。

この問題を診断するにはどうすればよいですか? Windows のイベント ビューアーを調べたところ、デバッグ用の VC80 CRT ライブラリが見つからないことに気付きましたが、私が知っているのはそれだけです。ここのどこかにバージョンの不一致があると思います。このマニフェスト/サイドバイサイドのものについてあまり知らないので、それを修正する方法がわかりません。

私が構築しているOSはWindows XP 32ビットです。VS2008 SP1 と VS2005 SP1 がインストールされています (したがって、すべてのデバッグ マニフェスト/CRT dll が利用できるはずです)。

4

1 に答える 1

0

適切なアセンブリマニフェストを確認または作成または確認する方法を学びます。

あなたがそれを成し遂げたら、ここにもっと多くの情報があります。

Windows XPでは、外部マニフェストがアプリケーションのローカルフォルダーに存在する場合、オペレーティングシステムローダーは、バイナリ内に埋め込まれたマニフェストの代わりにこのマニフェストを使用します。Windows Server 2003以降のバージョンのWindowsでは、逆のことが当てはまります。外部マニフェストは無視され、存在する場合は埋め込みマニフェストが使用されます。

于 2012-04-04T03:29:03.663 に答える