CORRECTIF : Vous ne pouvez pas ouvrir un fichier qui est au moins 4 Go pour ajouter ou pour écrire des données à l’aide d’une application Visual C++ 2010

S’applique à : Visual Studio Professional 2010Visual Studio Ultimate 2010

Symptômes


Considérez le scénario suivant :
  • Vous créez une application dans Microsoft Visual C++ 2010.
  • Vous utilisez la fonction fopen() dans l’application pour ouvrir un fichier, et la fonction utilise le mode d’accès r +ou a + .
  • Vous exécutez l’application et l’applicationtries pour ouvrir un fichier qui est égale ou supérieure à 4 gigaoctets (Go).

Dans ce scénario, le fichier ne s’ouvre pas, ou le message d’erreur suivant est renvoyé :
EINVAL (argument non valide)

Cause


Ce problème se produit en raison de la façon dont la fonction fopen() recherche à la fin des fichiers une fois qu’il ouvre les fichiers pour permettre l’ajout. La fonction fopen() utilise en interne la fonction _lseek() pour effectuer cette action. Toutefois, la fonction _lseek() ne peut pas gérer les fichiers qui sont égaux ou supérieurs à 4 Go.

Résolution


Ce correctif modifie le comportement de la famille des fopen() de fonctions. Après avoir appliqué ce correctif logiciel, la fonction fopen() utilise en interne une fonction que vous pouvez effectuer une recherche au-delà de la limite de 4 Go sans renvoyer une erreur. Plus précisément, la fonction fopen() utilise la fonction _lseeki64() au lieu de la fonction _lseek() .

Informations sur le correctif

Un correctif pris en charge est désormais disponible auprès de Microsoft. Toutefois, il est conçu pour résoudre uniquement le problème décrit dans cet article. Il s’applique uniquement aux systèmes rencontrant ce problème spécifique.

Pour résoudre ce problème, contactez les Services de Support technique Microsoft pour obtenir le correctif. Pour obtenir une liste complète des numéros de téléphone des Services de Support technique Microsoft et des informations relatives aux frais de support technique, visitez le site Web Microsoft suivant :Remarque Dans des cas particuliers, des frais généralement encourus pour les appels au support technique peuvent être annulés si un technicien du support technique Microsoft détermine qu'une mise à jour spécifique peut résoudre votre problème. Les coûts habituels du support technique s’appliqueront aux autres questions et problèmes qui ne relèvent pas de la mise à jour spécifique en question.

Conditions préalables

Pour appliquer ce correctif, vous devez disposer de Microsoft Visual Studio 2010 Service Pack 1 (SP1) est installé.

Nécessite un redémarrage

Vous devrez peut-être redémarrer l’ordinateur après avoir installé ce correctif logiciel si les fichiers concernés sont utilisés.

Informations de remplacement du correctif

Ce correctif ne remplace pas un correctif précédemment publié.

Informations sur les fichiers

La version globale de ce a les attributs de fichier (ou ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont répertoriées en temps universel coordonné (UTC). Lorsque vous affichez les informations de fichier, elles sont converties en heure locale. Pour trouver la différence entre l’UTC et l’heure locale, utilisez l’onglet fuseau horaire dans l’élément de Date et heure dans le panneau de configuration.

Pour toutes les versions prises en charge de Microsoft Visual Studio 2010 SP1

Nom de fichierVersion de fichierTaille du fichierDateHeurePlateforme
Mfcm100.dll10.0.40219.36282,69615-Nov-201122:32x86
Mfcm100d.dll10.0.40219.362104,72016-Nov-201100:29x86
Mfcm100u.dll10.0.40219.36282,70415-Nov-201122:32x86
Mfcm100ud.dll10.0.40219.362106,25616-Nov-201100:29x86
Mfcm100.dll10.0.40219.36293,96015-Nov-201121:54x64
Mfcm100d.dll10.0.40219.362120,59215-Nov-201123:56x64
Mfcm100u.dll10.0.40219.36293,96815-Nov-201121:54x64
Mfcm100ud.dll10.0.40219.362122,12815-Nov-201123:56x64
Mfcmifc80.dll10.0.40219.36214,09616-Nov-201121:26x86

Plus d'informations


Pour plus d’informations à propos d’un autre package de correctif qui s’applique au Package redistribuable de Microsoft Visual C++ 2010 Service Pack 1 (SP1), cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

2606060 correctif : vous ne pouvez pas ouvrir un fichier qui est au moins 4 Go pour ajouter ou pour écrire des données à l’aide d’une application qui utilise le Package redistribuable Visual C++ 2010


Pour plus d’informations sur les fonctions fopen() et _wfopen() , reportez-vous au site Web MSDN suivant :

État


Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».