msvcrXXXX.dllは、CランタイムライブラリのDLLです。 msvcpXXXX.dllは、C++ランタイムライブラリのDLLです。あなたは新しいC++プロジェクトを作成すると、Visual Studioで指定されたデフォルト値である、/ MDまたは/ MDDを使用して構築している場合は
一つまたはこれらの依存関係の両方を自分のバイナリに追加されます。これらのフラグのいずれかを使用すると、プログラムをDLLバージョンのC/C++ランタイムにリンクさせることができます。あなたは、プロジェクトのプロパティ - >構成プロパティ - > C/C++ /コード生成/ランタイムライブラリの下にデフォルト値を変更することができます。
/MTまたは/ MTdを使用するようにプロジェクトを変更すると、C/C++ランタイムがプログラムに直接リンクされるため、アプリケーションは上記のいずれかのDLLへの参照を生成しません。ほとんどの単純なプログラムでは、これは問題を引き起こすことはありません。しかし、あなたのプログラムはすべて、これらのフラグを使用して構築されているいくつかのDLLに分割されている場合、各DLLは、参照CRT関数と静的データのコピーを維持し、あなたが問題を解放/メモリ割り当てに動作する可能性があります。これらを回避するには、特定のDLL内に割り当てられたオブジェクトも同じモジュールで解放されていることを確認する必要があります。
一般に、複数のモジュール(DLL)を持つアプリケーションでは、/ MDおよび/ MDdフラグを使用する方が効率的です。これらのモジュールはすべて、C/C++ランタイムライブラリの1つのコピーと、アプリケーション・プロセス内のデータ構造。単純な単一のモジュールアプリケーションの場合
、しかし、/ MTまたは/ MTdにを使用して構築して自由に感じます。
良い説明。 –