5

Visual C ++プロジェクトを引き継いでいて、実行に問題がある友人がいます。これはグラフィックアプリケーションであり、QtGUIライブラリを使用します。私がこれに言及する理由は、以下のエラーのためです。

彼はVisualStudio2010を使用してプログラムをビルドおよびリンクできますが、実行すると、次のメッセージがイベントビューアに表示されます。

「D:\ Test \ Qt \ 4.2.2 \ bin\QtGuid4.dll」のアクティベーションコンテキストの生成に失敗しました。依存アセンブリMicrosoft.VC80.DebugCRT、processorArchitecture = "x86"、publicKeyToken = "1fc8b3b9a1e18e3b"、type = "win32"、version="8.0.50608.0"が見つかりませんでした。詳細な診断にはsxstrace.exeを使用してください。

メッセージの要求どおりに実行してsxstrace.exeを実行すると、次のように表示されます。

アクティベーションコンテキストの生成を開始します。入力パラメーター:フラグ= 0 ProcessorArchitecture = Wow32 CultureFallBacks = en-US; en ManifestPath = D:\ Test \ Qt \ 4.2.2 \ bin \ QtGuid4.dll AssemblyDirectory = D:\ Test \ Qt \ 4.2.2 \ bin \

---------------情報:マニフェストファイルD:\ Test \ Qt \ 4.2.2 \ bin\QtGuid4.dllを解析しています。情報:マニフェスト定義IDは(null)です。情報:参照:Microsoft.VC80.DebugCRT、processorArchitecture = "x86" type = "win32"、version = "8.0.50608.0"情報:参照Microsoft.VC80.DebugCRT、processorArchitecture = "x86" "win32"、version="を解決しています8.0.50608.0"。情報:ProcessorArchitectureWOW64の参照を解決しています。情報:カルチャニュートラルの参照を解決しています。情報:バインディングポリシーを適用しています。情報:パブリッシャーポリシーが見つかりません。情報:バインディングポリシーリダイレクトが見つかりません。情報:アセンブリのプロービングを開始します。情報:WinSxSでアセンブリが見つかりませんでした。情報:C:\ Windows \ assembly \ GAC_32 \ Microsoft.VC80.DebugCRT \ 8.0.50608.0__1fc8b3b9a1e18e3b\Microsoftでマニフェストをプローブしようとしました。VC80.DebugCRT.DLL。情報:文化ニュートラルのマニフェストが見つかりませんでした。情報:アセンブリのプロービングを終了します。情報:ProcessorArchitecturex86の参照を解決しています。情報:カルチャニュートラルの参照を解決しています。情報:バインディングポリシーを適用しています。情報:パブリッシャーポリシーが見つかりません。情報:バインディングポリシーリダイレクトが見つかりません。情報:アセンブリのプロービングを開始します。情報:WinSxSでアセンブリが見つかりませんでした。情報:C:\ Windows \ assembly \ GAC_32 \ Microsoft.VC80.DebugCRT \ 8.0.50608.0__1fc8b3b9a1e18e3b\Microsoft.VC80.DebugCRT.DLLでマニフェストをプローブしようとしました。情報:D:\ Test \ Qt \ 4.2.2 \ bin\Microsoft.VC80.DebugCRT.DLLでマニフェストをプローブしようとしました。情報:D:\ Test \ Qt \ 4.2.2 \ bin\Microsoft.VC80.DebugCRT.MANIFESTでマニフェストをプローブしようとしました。情報:D:\ Test \ Qt \ 4.2.2 \ bin \ Microsoft.VC80.DebugCRT\Microsoftでマニフェストをプローブしようとしました。VC80.DebugCRT.DLL。情報:D:\ Test \ Qt \ 4.2.2 \ bin \ Microsoft.VC80.DebugCRT\Microsoft.VC80.DebugCRT.MANIFESTでマニフェストをプローブしようとしました。情報:文化ニュートラルのマニフェストが見つかりませんでした。情報:アセンブリのプロービングを終了します。エラー:参照Microsoft.VC80.DebugCRT、processorArchitecture = "x86"、publicKeyToken = "1fc8b3b9a1e18e3b"、type = "win32"、version="8.0.50608.0"を解決できません。

そのメッセージの長さについては申し訳ありませんが、私はそれがいくつかの思い出をジョギングするかもしれないと思いました。これは、彼がVisual C ++ 2005(VC80の出所だと思います)Cランタイムライブラリをインストールしていない場合ですか?もしそうなら、彼はVC ++再配布パッケージをダウンロードしてインストールできますか?それとも、これはまったく別の問題ですか?

4

2 に答える 2

7

友人がVS2005をインストールしていない場合、その友人はそのためのデバッグランタイムライブラリを持っていません。これらは再配布可能なランタイムおよびIIRCの一部ではありません。マイクロソフトでは、自分で配布することを禁止しているため、取得するにはVS2005をインストールする必要があります。

可能であれば、影響を受けたライブラリを再構築することをお勧めします。VisualStudioを使用してGPLQTを再構築する方法について、Web上にいくつかの記事があることを漠然と思い出しますが、これは公式にはサポートされていないと思います。

C ++ランタイムの混合には多くの注意が必要であり、正確に正しく理解しないと、かなり厄介な罠に陥る可能性があります。VS2010を使用してすべてのライブラリを再構築するオプションがない場合は、友人がVS2005を入手する必要があります。MSがVS2005のExpressEditionをダウンロードできるかどうかを確認する価値があるかもしれません。

于 2010-03-02T07:40:37.070 に答える
1

あなたは以下を行う方がよいでしょう:LOL

X64ターゲットを組み込んだWindows7X64モードでアプリケーションを実行している場合は、次のX64SP1再配布可能パッケージをインストールする必要があります。

http://www.microsoft.com/download/en/details.aspx?id=2092

注:マニフェストファイルは、processorArchitecture=X64およびtype="win64"に変更する必要があります。

WOW64レイヤー上で実行されるX86(32ビットモード)を使用してアプリケーションを構築している場合は、X86SP1再配布可能パッケージをインストールする必要があります。

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5582

于 2012-08-10T05:32:41.943 に答える