msvcrXXXX.dll est la DLL pour la bibliothèque d'exécution C. msvcpXXXX.dll est la DLL de la bibliothèque d'exécution C++.
L'une de ces dépendances ou les deux seront ajoutées à votre fichier binaire si vous générez à l'aide de/MD ou de/MDd, qui sont les valeurs par défaut spécifiées par Visual Studio lorsque vous créez un nouveau projet C++. L'utilisation de l'un de ces indicateurs indique que vous voulez que votre programme soit lié à la version DLL de l'environnement d'exécution C/C++. Vous pouvez modifier les paramètres par défaut sous Propriétés du projet-> Propriétés de configuration-> C/C++/Génération de code/Bibliothèque d'exécution.
Si vous modifiez votre projet pour utiliser/MT ou/MTd, votre application ne générera aucune référence à l'une des DLL listées ci-dessus, car les runtimes C/C++ seront directement liés à votre programme. Pour la plupart des programmes simples, cela ne causera aucun problème. Cependant, si votre programme est divisé en plusieurs DLL construites à l'aide de ces indicateurs, chaque DLL conservera une copie des fonctions CRT référencées et des données statiques, et vous risquez de rencontrer des problèmes d'allocation/libération de mémoire. Pour les éviter, vous devez vous assurer que les objets alloués dans une DLL donnée sont également libérés dans ce même module.
En général, il est plus efficace d'utiliser les indicateurs/MDD/MDd pour les applications qui ont plusieurs modules (DLL), car tous ces modules partageront une seule copie des bibliothèques d'exécution C/C++ et leurs structures de données dans le processus de demande.
Pour des applications simples à module unique, cependant, n'hésitez pas à créer en utilisant/MT ou/MTd.
Bonne explication. –