1. ホーム
  2. windows

[解決済み] Visual C++の実行ファイルとMSVCR100d.dllの欠落

2022-03-07 10:30:44

質問

他の場所で質問され、回答されていることだと思いますが、MS Visual Studio 2010で問題が発生しています。C++の実行ファイルを開発しましたが、VC++のランタイムライブラリ(つまり、msvcr100d.dll)がないマシンでリリース版を実行すると、"program cannot start because msvcr100d.dll is missing from your computer" エラーが出てしまうのです。

これは2つの理由で奇妙です。

  • なぜ、再配布可能ファイルのデバッグ版とリンクしようとするのでしょうか?
  • を適用してみました。 この修正 ランタイムライブラリ設定を/MD(マルチスレッドDLL)ではなく/MTに設定しましたが、問題は悪化するばかりでした(msvcr100d.dllを手動でコピーすると、msvcp110.dllが見つからないと表示されました)。

MS VC 2010または再配布可能ファイルがインストールされていないマシンでも実行できるように、ランタイムライブラリを実行ファイルにパッケージするにはどうすればよいですか?

DLLは更新されないので、DLLのコピーを含めることはセキュリティリスクと考えられていることは知っていますが、私の目標は、短期的に数人の友人にこの実行ファイルを送ることだけです。

どのように解決するのですか?

リリースモードでコンパイルしている場合は、デバッグ版のCRTは絶対に必要ありません。デバッグ版のDLLは、末尾に d .

さらに言うと、デバッグ版は ではなく 再頒布可能なので、実行ファイルと一緒にパッケージングしたり、DLLをzipで圧縮したりするのは簡単ではありません。

をコンパイルしているかどうか確認してください。 すべて また、正しいバージョンの CRT とその他の使用ライブラリ(MFC、ATL など)をリンクしているかどうか確認してください。

あなたは 意志 もちろん msvcr100.dll (がないことに注意してください)。 d などがインストールされていない場合は、インストールしてください。お友達に Visual C++ 2010 再頒布可能ファイル (または x64 または、インストーラを作成し、アプリケーションに自動的に組み込むことができます。