Redistribuables Visual C++ : lesquels installer et pourquoi les cumuler

Un redistribuable Visual C++ est un package Microsoft qui installe les bibliothèques d'exécution réclamées par un logiciel compilé avec Visual Studio. Chaque version dépose ses fichiers, de msvcr80.dll à vcruntime140.dll, sans remplacer les précédentes : un système Windows en accumule huit ou dix, en x86 et en x64.

En bref

  • Chaque édition de Visual Studio dépose ses propres fichiers : installer le package 2022 ne remplace jamais celui de 2010.
  • Seule la famille 14.x fait exception, un unique package couvrant les éditions 2015, 2017, 2019 et 2022.
  • Sur un système 64 bits, poser les deux architectures : les applications 32 bits réclament le package x86.

À quoi sert un redistribuable Visual C++

Quand un développeur compile une application en C++ avec Visual Studio, il ne recopie pas dans son programme tout le code standard dont celui-ci a besoin : gestion de la mémoire, chaînes de caractères, entrées et sorties, exceptions, flux. Ce code commun reste dans des bibliothèques partagées, livrées à part sous la forme d'un package appelé Microsoft Visual C++ Redistributable. Le logiciel appelle ces fichiers au démarrage ; s'ils manquent, il refuse de se lancer et Windows affiche une erreur nommant précisément la DLL absente.

Ce mécanisme explique la majorité des messages du type vcruntime140.dll est introuvable ou msvcp140.dll manquant. Le programme n'est pas corrompu : c'est sa dépendance qui n'a jamais été installée sur le système. Installer le package compatible avec la version qui a servi à compiler le logiciel suffit dans la quasi-totalité des cas.

Il ne faut pas confondre ces packages avec msvcrt.dll, le runtime C historique de Windows. Ce fichier appartient au système d'exploitation, il est livré avec lui et ne se télécharge nulle part. Les redistribuables, eux, sont des composants que chaque éditeur de logiciel a le droit de diffuser avec son produit, d'où leur nom.

Ce que contient réellement un package

Le nom parle de redistribuable, le contenu est plus précis : il s'agit des bibliothèques d'exécution produites par le compilateur MSVC, celui qu'embarque Visual Studio pour transformer les fichiers .cpp en programme. On y trouve le runtime C universel, la bibliothèque standard du langage C++ et le moteur de gestion des exceptions, auxquels s'ajoutent des composants optionnels selon l'édition.

  • La bibliothèque MFC, qui fournit l'interface graphique de beaucoup de logiciels Windows écrits dans les années 2000 et toujours maintenus.
  • La bibliothèque ATL, employée par les composants COM.
  • Le runtime OpenMP et le Concurrency Runtime, destinés au calcul parallèle.

Cette composition explique un point de compatibilité souvent mal compris. Chaque nouvelle édition du compilateur améliore sa conformité au standard C++ et modifie la disposition interne de certaines structures. Un exécutable compilé avec une génération donnée ne peut donc pas fonctionner avec les bibliothèques d'une autre, même lorsque les fonctions portent le même nom. C'est cette contrainte technique, et non un choix commercial, qui impose de cumuler les packages.

Pourquoi plusieurs versions cohabitent sur la même machine

C'est le point que la liste des programmes installés ne dit jamais : les redistribuables Visual C++ ne se mettent pas à jour les uns par-dessus les autres. Ils s'installent côte à côte, chacun avec ses propres fichiers, portant des noms différents. Une application compilée en 2010 réclame msvcr100.dll ; aucune version plus récente ne porte ce nom, donc aucune ne peut la satisfaire. Installer la dernière édition ne rend pas les précédentes inutiles.

La conséquence pratique est simple : une liste de dix entrées Microsoft Visual C++ dans vos programmes n'est ni un doublon ni un résidu. C'est la trace des logiciels que vous utilisez, chacun ayant apporté la brique dont il avait besoin. En supprimer une au motif qu'elle paraît ancienne revient à casser, sans aucun avertissement, le programme qui en dépendait.

Une seule exception existe, et elle change beaucoup de choses au quotidien. Depuis 2015, Microsoft maintient une compatibilité binaire au sein de la famille 14.x : les éditions 2015, 2017, 2019 et 2022 partagent les mêmes fichiers, vcruntime140.dll et msvcp140.dll en tête. Un unique package couvre donc ces quatre générations, et c'est le seul cas où installer la version la plus récente dispense des autres.

Quelles versions existent, et laquelle installer

Le tableau ci-dessous relie chaque édition de Visual Studio à son package redistribuable et aux fichiers qu'il dépose. C'est la correspondance à garder sous la main quand une erreur nomme une DLL sans préciser d'où elle vient.

Édition Fichiers principaux Statut
2015 à 2022 (14.x)vcruntime140.dll, vcruntime140_1.dll, msvcp140.dll, concrt140.dllà jour, un seul package pour les quatre
2013 (12.0)msvcr120.dll, msvcp120.dllhors support, encore très réclamé par les jeux
2012 (11.0)msvcr110.dll, msvcp110.dllhors support
2010 (10.0)msvcr100.dll, msvcp100.dllhors support
2008 (9.0)msvcr90.dll, msvcp90.dllhors support, installé en assemblage côte à côte
2005 (8.0)msvcr80.dll, msvcp80.dll, mfc80.dllhors support
.NET 2003 (7.1)msvcr71.dll, msvcp71.dllaucun package public n'a jamais existé

La dernière ligne mérite un mot, car elle piège régulièrement. Microsoft n'a jamais diffusé de redistribuable pour Visual Studio .NET 2003 : ses bibliothèques devaient être livrées par l'éditeur du logiciel, dans son propre dossier d'installation. Une erreur portant sur msvcp71.dll ou son jumeau msvcr71.dll ne se corrige donc pas en téléchargeant un package Microsoft, mais en réinstallant l'application concernée.

Même logique pour les générations suivantes, dont les fichiers restent identifiables au chiffre qu'ils portent. Une erreur sur msvcr80.dll renvoie à l'édition 2005, une erreur sur msvcr120.dll à celle de 2013. Le chiffre du nom de fichier est la version, et il suffit à savoir quoi télécharger.

x86 ou x64 : pourquoi installer les deux

Chaque package existe en deux architectures, et la réponse courante consistant à prendre celle de son système est fausse une fois sur deux. Un Windows 64 bits exécute parfaitement des applications 32 bits, et celles-ci réclament la version x86 des bibliothèques, jamais la x64. Or une bonne part des logiciels grand public, des jeux anciens et des utilitaires reste compilée en 32 bits.

  • Sur un système 64 bits, installer le package x64 et le package x86 : les deux cohabitent sans conflit.
  • Sur un système 32 bits, seul le package x86 s'installe ; l'autre sera refusé par l'installeur.
  • Sur une machine ARM64, un troisième package est proposé depuis les éditions récentes de Visual Studio.

Un détail de nommage achève d'embrouiller le sujet. Les fichiers 64 bits se rangent dans C:\Windows\System32 et les fichiers 32 bits dans C:\Windows\SysWOW64. Le nom du second dossier suggère l'inverse de son contenu : WOW64 désigne la couche qui fait tourner du code Windows 32 bits sur un système 64 bits, pas la taille des fichiers qu'il abrite.

Où télécharger les packages officiels

Le téléchargement se fait sur une seule page, celle de la documentation Microsoft consacrée aux dernières versions prises en charge de Visual C++ Redistributable. On y trouve les liens directs vers les fichiers vc_redist.x64.exe, vc_redist.x86.exe et vc_redist.arm64.exe, ainsi que les archives des éditions antérieures encore mises à disposition.

Le fichier téléchargé est un installeur de quelques dizaines de mégaoctets, signé numériquement par Microsoft. Il s'exécute d'un double clic, demande l'acceptation de la licence, puis se termine en une poignée de secondes. Il n'y a rien à configurer, et un redémarrage n'est demandé que si un fichier en cours d'utilisation doit être remplacé.

La règle de sécurité qui accompagne ce sujet ne souffre aucune exception : on installe le package complet, jamais une DLL isolée récupérée sur un site de téléchargement. Les raisons sont détaillées dans notre article sur les dangers du téléchargement d'une DLL isolée, mais l'essentiel tient en deux lignes. Un fichier déposé à la main n'est pas enregistré auprès du système, il ne sera jamais mis à jour, et rien ne garantit son intégrité ni son origine.

Déployer les packages sur plusieurs postes

En entreprise, l'installation manuelle sur chaque machine n'a guère de sens. Les fichiers vcredist acceptent des paramètres en ligne de commande qui rendent le déploiement automatisable, sous Windows comme sous Windows Server.

  • vc_redist.x64.exe /install /quiet /norestart installe le package sans interface ni redémarrage, ce qui convient à un script de déploiement.
  • /repair /quiet /norestart répare une installation existante avec les mêmes garanties.
  • Le code de retour 3010 indique que l'opération a réussi mais qu'un redémarrage reste nécessaire.

Pour savoir de quel package un logiciel dépend avant de le déployer, un outil suffit : la commande dumpbin /dependents, livrée avec les outils MSVC de Visual Studio, analyse un exécutable et liste les DLL qu'il appelle. Le numéro de build affiché dans les propriétés du fichier confirme ensuite la génération concernée. Beaucoup d'installateurs commerciaux font ce travail automatiquement et déposent le package dont ils ont besoin, ce qui explique la longueur de la liste sur un ordinateur ancien.

Vérifier ce qui est déjà installé

Avant de télécharger quoi que ce soit, un coup d'oeil à la liste des programmes évite souvent l'opération. Sous Windows 11 et Windows 10 récents, ouvrir Paramètres, puis Applications et Applications installées ; le panneau de configuration classique reste accessible par Ajouter ou supprimer des programmes, rebaptisé Programmes et fonctionnalités. Taper visual dans le champ de recherche filtre immédiatement la liste.

Chaque ligne porte l'année de l'édition, l'architecture entre parenthèses et le numéro de version détaillé. Une entrée Microsoft Visual C++ 2015-2022 Redistributable (x64) signifie que la famille 14.x est couverte pour les applications 64 bits, et qu'il reste à vérifier la présence de son équivalent x86.

Pour un contrôle plus fin, la base de registre expose directement l'état de l'installation. La clé HKLM\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64 contient une valeur Installed et une valeur Version. C'est la méthode qu'utilise un installateur de logiciel pour savoir s'il doit embarquer le package ou s'en dispenser, et un script d'inventaire l'interroge de la même façon.

Comprendre les numéros de version

Le millésime affiché dans le nom du package est la date de sortie de l'édition de Visual Studio, jamais celle de la mise à jour disponible. Le package intitulé Microsoft Visual C++ 2015-2022 porte ainsi un numéro de version interne en 14.4x, révisé plusieurs fois par an sur le site officiel de Microsoft. Un poste installé il y a deux ans affiche le même intitulé qu'un poste à jour, alors que les fichiers déposés diffèrent.

La même distinction vaut pour les éditions anciennes : le package 2012 le plus répandu est celui de Visual Studio 2012 Update 4, et celui de 2008 correspond à son Service Pack 1. Pour obtenir l'information exacte, il faut lire le numéro de version dans la liste des programmes, ou les propriétés du fichier DLL lui-même, onglet Détails. C'est ce numéro, et non le millésime, qui permet de gérer un parc et de savoir quelle plateforme est réellement couverte.

Les erreurs les plus fréquentes et leur cause

Une DLL nommée dans le message

Le cas le plus simple : le message cite le fichier, le chiffre donne la version, et le package correspondant règle le problème. Si l'erreur persiste après installation, c'est en général que l'architecture ne correspond pas et qu'il faut poser l'autre package. Nos explications générales sur les erreurs DLL sous Windows couvrent les autres causes possibles, du profil utilisateur endommagé à l'antivirus trop zélé.

Le code 0xc000007b

Ce code signale un mélange d'architectures : une application 32 bits qui tente de charger une bibliothèque 64 bits, ou l'inverse. Il apparaît typiquement quand seul le package x64 est présent sur la machine alors que le logiciel est compilé en 32 bits. Installer la version x86 en plus résout la situation dans la grande majorité des cas.

Le code 0x80070666

Ce message indique qu'une version plus récente du même produit est déjà installée, et que l'installeur refuse de reculer. Il ne s'agit pas d'une panne : la machine possède déjà ce qu'il faut. La bonne réaction est de conserver la version en place, ou de lancer l'option Réparer proposée par l'installeur du package le plus récent si un fichier semble endommagé.

Une réparation plutôt qu'une réinstallation

Quand le package figure bien dans la liste des programmes mais que l'erreur revient, relancer l'installeur ouvre une fenêtre offrant Réparer et Désinstaller. La réparation redépose les fichiers manquants ou modifiés sans toucher au reste, et c'est le geste à tenter avant toute désinstallation.

Ce que les utilisateurs demandent le plus souvent

Comment installer Visual C++ Redistributable ?
Téléchargez le fichier vc_redist correspondant à votre architecture depuis la page officielle de Microsoft, lancez-le d'un double clic et acceptez la licence. L'installation dure quelques secondes et ne demande aucun réglage.
Quelles versions de Visual C++ Redistributable existent ?
Les éditions 2005, 2008, 2010, 2012, 2013 et la famille 14.x qui regroupe 2015, 2017, 2019 et 2022. Chacune existe en x86 et en x64, et les plus récentes également en ARM64.
Pourquoi utiliser Visual C++ Redistributable ?
Parce que les applications écrites en C++ avec Visual Studio n'embarquent pas les bibliothèques d'exécution qu'elles appellent au démarrage. Sans le package correspondant, le logiciel ne se lance pas et Windows signale une DLL introuvable.
Comment vérifier l'installation de Visual C++ Redistributable ?
Ouvrez Paramètres puis Applications installées, ou le panneau de configuration, et filtrez la liste sur le mot visual. Chaque entrée indique l'année, l'architecture et le numéro de version exact du package.
Où télécharger Visual C++ Redistributable ?
Uniquement sur la page de documentation Microsoft consacrée aux dernières versions prises en charge. Les fichiers y sont signés numériquement, et aucun autre site de téléchargement ne présente la même garantie d'intégrité.
Quelles sont les dépendances de Visual C++ Redistributable ?
Le package n'a besoin que de Windows lui-même et des mises à jour de sécurité du système. Il ne réclame ni le .NET Framework ni Visual Studio, qui sont des composants distincts répondant à d'autres besoins.
Comment résoudre les erreurs liées à Visual C++ Redistributable ?
Identifiez la version au chiffre du nom de fichier, installez le package des deux architectures, puis utilisez l'option Réparer de l'installeur si le problème persiste. Ne déposez jamais un fichier isolé à la main.

Derniers articles

Vous aimerez aussi