web-dev-qa-db-fra.com

Ai-je besoin des versions x64 et x86 du redist en C ++?

Si je dispose à la fois des versions x64 et x86 d'un package Microsoft C++ Redist, puis-je désinstaller la version x86? Si je désinstallais la version x86, la version x64 couvrirait-elle les dépendances du paquet x86?

6
h313

Ai-je besoin des versions x64 et x86 du redist en C++? Si je dispose à la fois des versions x64 et x86 d'un package Microsoft C++ Redist, puis-je désinstaller la version x86?

Cela dépend si vous utilisez des programmes VC++ 32 bits et/ou 64 bits.

Si je désinstallais la version x86, la version x64 couvrirait-elle les dépendances du paquet x86?

Non, vous avez besoin de la version x86 pour exécuter des programmes VC++ 32 bits et de la version x64 pour exécuter des programmes VC++ 64 bits.

Explication technique :

La plupart des programmes font beaucoup de choses de la même manière. Pour éviter de "réinventer la roue", ils utiliseront bibliothèques , qui sont des collections de fonctions pré-écrites pouvant être utilisées pour réduire la quantité de travail à effectuer. C’est bien, mais si chaque programme incluait les fonctions communes dans les programmes, beaucoup d’espace serait gaspillé, car ils étaient tous identiques. De plus, si un bogue était détecté et corrigé ou si une amélioration était apportée dans la bibliothèque, chaque programme devrait être recompilé pour inclure le correctif/l'amélioration.

Pour résoudre ces limitations, au lieu d'inclure les fonctions en interne, la plupart des programmes référenceront les fonctions stockées en externe dans un fichier .dll. De cette manière, ils peuvent tous partager le même code, ce qui réduit le gaspillage d’espace et peuvent tous être mis à niveau simultanément en remplaçant le fichier de bibliothèque unique.

Un programme peut être 32 bits ou 64 bits, ce qui, entre autres choses, détermine la taille des variables et autres. Le problème est que le code 32 bits n'est pas compatible avec le code 64 bits. Un programme 32 bits doit donc utiliser des bibliothèques 32 bits et un programme 64 bits doit utiliser des bibliothèques 64 bits.

Par conséquent, s'il existe un programme 32 bits, foobar.exe et un programme 64 bits, foobar64.exe, qui utilisent tous deux des bibliothèques VC++, alors foobar.exe aura besoin de \x86\msvc*.dll et foobar64.exe aura besoin de \x64\msvc*.dll; ils ne peuvent pas utiliser les bibliothèques du mauvais “ bitness ”.

10
Synetech

vous avez besoin de vcredist x86 et x64, vous voulez une preuve? essayez d’exécuter gta iv sans vcredist 2005 x86 lorsque vcredist 2005 x64 est installé. vcredist 2005 x64 et x86 disponibles sur le site officiel de Microsoft.

0

Les redistribuables x86 et x64 couvrent le code x86 et x64, respectivement et uniquement. Autrement dit, la version x64 ne couvre pas le code x86, ni inversement.

Quant à savoir si vous pouvez les supprimer en général, c'est difficile à dire. Cela dépend de vos applications et de leur besoin de ces redistribuables. C'est une pratique relativement sûre de les enlever, de voir si cela pose un problème et de les remettre en place.

0
Patrick Seymour

Ne devrait pas être enlevé.

Examinez les systèmes d'exploitation installés qui fournissent de gros fournisseurs. Tous les packages sont présents 2005/2008/2010/2012 ... x86 et x64. Parce que les développeurs, divers programmes peuvent utiliser l’une de ces bibliothèques.

0
STTR