Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

CORRECTIF : Après l'installation des bibliothèques Runtime de Visual C++ 6.0 sur votre ordinateur, un message d'erreur « erreur de page non valide dans le module MSVCRT.DLL » s'affiche

Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Symptômes
Après l'installation des bibliothèques d'exécution C (Msvcrt.dll) de Visual C++ 6.0 sur votre ordinateur, les applications qui fonctionnaient correctement auparavant échouent et une erreur d'application semblable à ce qui suit s'affiche :
<Nom de l'application> a provoqué une erreur de page non valide dans le module MSVCRT.DLL à XXXX:XXXXXXXX.
Cause
Une cause possible de cette erreur est que l'application a dépassé le bloc de mémoire appartenant à un objet particulier. Le gestionnaire de mémoire du tas des petits blocs compris dans les bibliothèques Runtime Visual C++ 6.0 incorpore des structures de contrôle de tas dans le tas des petits blocs. L'écrasement du bloc de mémoire modifie les adresses de pointeur du tas des petits blocs, ce qui rend le pointeur incorrect et peut provoquer une erreur dans Msvcrt.dll lorsque le pointeur est référencé.
Résolution
Les fournisseurs d'applications doivent s'assurer que leurs applications utilisent le tas des petits blocs Runtime C correctement.

Pour assister les clients qui rencontrent ce problème dans leurs applications tierces, Microsoft a publié une nouvelle bibliothèque dynamique (DLL) Runtime C, Msvcrt.dll, qui implémente deux gestionnaires de tas : le gestionnaire de tas compatible avec Visual C++ 5.0 et le gestionnaire de tas compatible avec Visual C++ 6.0. Msvcrt.dll détecte la version de Visual C++ avec laquelle votre application est créée et utilise le gestionnaire de tas approprié. S'il s'agit de Visual C++ 6.0 ou version supérieure, le gestionnaire de tas compatible avec Visual C++ 6.0 est utilisé ; s'il s'agit d'une version antérieure à Visual C++ 6.0, la version compatible avec Visual C++ 5.0 est utilisée.

Les utilisateurs de Visual Studio 6.0 peuvent obtenir le nouveau fichier Msvcrt.dll en installant le dernier Service Pack Microsoft Visual Studio. Si vous n'utilisez pas Visual Studio, installez la mise à jour des bibliothèques Microsoft ; pour plus d'informations, reportez-vous à l'article suivant de la Base de connaissances Microsoft :
197298 Mise à jour des bibliothèques Microsoft : Quoi, où, pourquoi
Statut
Microsoft a confirmé l'existence de ce bogue dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Ce problème a été corrigé dans le Service Pack 3 Visual Studio 6.0.Pour plus d'informations sur les Service Packs Visual Studio, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
194022 Service Packs pour Visual Studio 6.0, quoi, où, pourquoi
194295 Comment faire pour savoir si un Service Pack Visual Studio est installé
Plus d'informations
Le tas des petits blocs comprend les allocations de taille inférieure à 1 Ko. Les bogues de ce type peuvent se comporter différemment dans des versions plus anciennes de la bibliothèque Runtime C car les structures de contrôle sont situées à un emplacement différent et distinct dans la mémoire. Ces types d'erreurs de code provoquent fréquemment l'altération d'un autre bloc de mémoire et peuvent même entraîner le blocage du système. La séquence d'événements provoquant une violation d'accès est différente lorsque vous utilisez les bibliothèques Runtime C de Visual C++ 6.0.

Vous pouvez contrôler ces types de problèmes à l'aide du tas de débogage. Reportez-vous à la documentation en ligne intitulée "Tas de débogage". Vous devez activer le tas de débogage en appelant _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF |_CRTDBG_CHECK-_ALWAYS_DF) lors de l'initialisation du processus dans une version debug de votre application.
SP3 crt msvcirt
Propriétés

ID d'article : 190536 - Dernière mise à jour : 01/23/2006 17:43:00 - Révision : 3.1

Microsoft Visual C++ 6.0 Édition Entreprise, Microsoft Visual C++ 6.0 Édition Professionnelle, Microsoft Visual C++, 32-bit Learning Edition 6.0

  • kberrmsg kbbug kbfix kbcrt kbqfe kbvs600sp2fix kbvs600sp3fix kbhotfixserver KB190536
Commentaires