私はVS2008を使用してアプリケーションのデバッグバージョンを作成しています。 コンパイル後、アプリケーションを実行しようとすると、有名な「MSVCR90.dllが見つかりません」というエラーが表示されます。C++アプリケーション(デバッグバージョン)にはVSランタイムライブラリが含まれていますmsvcr90.dllとmsvcr90d.dll
は当初、私は最後に私がしようとしたアプリケーションフォルダにフォルダが、私はまだ別の有名なエラー「アプリケーションが誤ってCランタイムライブラリをロードしようとする試みを行っている」取得winsxsからMSVCR90.dllをコピーする
を試してみましたアプリケーションの依存関係を調べると、私には何か奇妙なことが明らかになりました。 msvcr90d.dllとmsvcr90.dllという2つのアプリケーションに依存するMSVCR90ライブラリがありました。私はこのライブラリの非デバッグバージョンが私のアプリケーションにどのように入っているのかは分かりません。
私は間違っている可能性があります。前もって感謝します。ここで
は絵です:
dependency walker - no functions visible
を使用することができますあなたのアプリケーションからインポートされた機能かを確認する依存関係ウォーカーを使用することができます'msvcr90.dll' – Ari0nhh
推測:あなたはリリースモードで構築された外部ライブラリとリンクしています。 –
_ winsxsフォルダからMSVCR90.dllをアプリケーションフォルダにコピーしようとしました。 - これを行わないでください。通常、インストーラを使用してランタイムをインストールする方が良いでしょう。 _アプリケーションに依存する2つのMSVCR90ライブラリ - msvcr90d.dllとmsvcr90.dll_ - 誰か(あなたまたは静的ライブラリ)が、ランタイムのリリースバージョンに対して何かを構築しました。あなたはそれを見つけるためにすべての図書館とプロジェクトを実行する必要があります。実行時に不一致の原因を診断するのに十分な詳細がありません。 – Niall