Initialisation incorrecte des valeurs globales si vous utilisez un en-tête précompilé

Traductions disponibles Traductions disponibles
Numéro d'article: 318139 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F318139
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Sommaire

Symptômes

Si vous utilisez un en-tête précompilé (tel que /Yu, /Yx ou /Yc), les valeurs globales peuvent ne pas être correctement initialisées.

Résolution

Un correctif pris en charge permettant de résoudre ce problème est désormais disponible auprès de Microsoft. Toutefois, n'ayant pas subi tous les tests de régression, il ne doit être appliqué qu'aux systèmes rencontrant ce problème spécifique. Si votre ordinateur n'est pas sérieusement affecté par ce problème spécifique, Microsoft vous conseille d'attendre la sortie du prochain Service Pack de Microsoft Visual Studio .NET qui contiendra ce correctif.

Pour résoudre ce problème dès à présent, procurez-vous ce correctif auprès des services de Support technique Microsoft. Pour obtenir une liste complète des services de Support technique Microsoft et leur numéro de téléphone, ainsi que des informations relatives aux frais de support technique, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://support.microsoft.com/contactus/?ws=support
La version anglaise de ce correctif doit avoir les attributs de fichier suivants ou ceux d'une version ultérieure :
   Date      Heure   Version         Taille  Nom de fichier   Plate-forme
   ----------------------------------------------------------------------
   07/03/02  15:57   13.00.9478   2 105 344  C1xx.dll         x86
   07/03/02  15:57   13.00.9478   1 757 184  C2.dll           x86

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section "Liste des produits concernés par cet article".

Plus d'informations

Procédure pour reproduire le comportement

  1. Créez un nouveau fichier nommé InclureFichier1.h, ajoutez le code suivant à InclureFichier1.h, puis enregistrez le fichier :
    const double gVal1 = 1234.567;
    const double gVal2 = gVal1;
  2. Créez un nouveau fichier nommé InclureFichier2.h, ajoutez le code suivant à InclureFichier2.h, puis enregistrez le fichier :
    const double gVal3 = 10 * gVal2;
  3. Créez un nouveau fichier nommé Stdafx.h, ajoutez le code suivant à Stdafx.h, puis enregistrez le fichier :
    #include "InclureFichier1.h"
  4. Créez un nouveau fichier nommé Stdafx.cpp, ajoutez le code suivant à Stdafx.cpp, puis enregistrez le fichier :
    #include "Stdafx.h"
  5. Utilisez l'option de compilateur C++ suivante sur Stdafx.cpp :
    /Yc"stdafx.h"
  6. Créez un nouveau fichier nommé MonFichier.cpp, ajoutez le code suivant à MonFichier.cpp, puis enregistrez le fichier :
    #include "stdafx.h"
    #include "InclureFichier2.h"
  7. Utilisez l'option de compilateur C++ suivante sur MonFichier.cpp :
    /Yu"stdafx.h"
    Notez que //gVal3 n'est pas correctement initialisée pour son utilisation dans MonFichier.cpp.

Propriétés

Numéro d'article: 318139 - Dernière mise à jour: lundi 10 février 2014 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual C++ .NET 2002 Initiation
Mots-clés : 
kbnosurvey kbarchive kbbug kbfix kbvcsearch kbvssearch KB318139
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com