Introducere
Remedierea rapidă descrisă în acest articol remediază următoarele probleme din Microsoft Visual Studio 2010.
Problema 1
Întâmpinați un comportament neașteptat atunci când executați o aplicație care are bucle în codul sursă. Această problemă apare dacă codul sursă este compilat cu global optimization (/ Og) activat.
Problema 2
Să luăm în considerare următorul scenariu:
-
Aveți un proiect Visual C++ care conține fișierul Atlcomcli.h.
-
Specificați opțiunea compilator/j să definiți_CHAR_UNSIGNEDmacrocomenzi în proiect.
-
Se compilează proiectul.
În acest scenariu, primiți unul dintre următoarele mesaje de eroare:
-
eroare C2338: CVarTypeInfo < char > nu poate fi compilat cu semnalizatorul/j sau _CHAR_UNSIGNED activat
-
eroare C2338: CVarTypeInfo < char * > nu poate fi compilat cu semnalizatorul/j sau _CHAR_UNSIGNED activat
Problema 3
O violare de acces atunci când executați o aplicație Visual C++, care este construit pentru o versiune x86 de Windows. Această problemă apare când aplicația are un arbore expression care are două matrice de tip intrare argumente.
Cauza
Cauza problemei 1
Această problemă apare deoarece o optimizare incorecte buclă este executat. Acest lucru provoacă generare de cod incorect.
Cauza problemei 2
Această problemă apare deoarece afirmaţiile statice în fișierul Atlcomcli.h sunt setate la opțiunea/j și macrocomanda CHAR_UNSIGNED incorect.
Cauza problemei 3
Această problemă apare deoarece argumentele în instrucțiunile de tip push sunt amestecat. De aceea, argumente incorecte sunt transmise pentru a plasa instrucțiunile.
Mai multe informații
Informații despre remedierea rapidă
Un hotfix acceptat este acum disponibil de la Microsoft. Cu toate acestea, aceasta este scopul de a corecta numai problema descrisă în acest articol. Aplicați-o numai pe sistemele care întâmpină această problemă anume. Această remediere rapidă poate să necesite testare suplimentară. De aceea, dacă nu sunteți grav afectat de această problemă, vă recomandăm să aşteptaţi următoarea Visual Studio 2010 care conține această remediere rapidă.
Pentru a rezolva imediat problema, contactaţi serviciile de asistență pentru clienți Microsoft pentru a obține remedierea rapidă. Pentru o listă completă a numerelor de telefon ale serviciilor de asistență pentru clienți Microsoft și informații despre costurile de asistență, vizitați următorul site Web Microsoft:
http://support.microsoft.com/contactus/?ws=supportNotă În cazuri speciale, costurile implicate de obicei pentru apelurile de suport pot fi anulate dacă un specialist în asistență Microsoft stabilește că o anumită actualizare va rezolva problema. Se vor aplica costurile uzuale de asistenţă pentru întrebări suplimentare de asistenţă şi pentru probleme ce nu fac obiectul actualizării în cauză.
Cerințe preliminare
Trebuie să aveți Microsoft Visual Studio 2010 instalat pentru a aplica această remediere rapidă.
Cerinţă de repornire
Nu trebuie să reporniți computerul după ce aplicați remedierea rapidă, dacă se utilizează niciun fișier afectate.
Informații despre înlocuirea remedierilor rapide
Această remediere rapidă nu înlocuiește nicio altă remediere rapidă.
Informații despre fișier
Versiunea în limba engleză a acestei remedieri rapide are atributele de fişier (sau atribute de fişier mai recente) enumerate în următorul tabel. Datele şi orele acestor fişiere sunt exprimate în listă în ora universală (UTC). Când vizualizaţi informaţiile despre fișier, acesta este convertit la ora locală. Pentru a afla diferența între timpul universal și cel local, utilizați
Fus orar
fila în
Data și ora
element din panoul de Control.
Nume de fișier |
Versiune fișier |
Dimensiune fișier |
Data |
Ora |
Platformă |
---|---|---|---|---|---|
C2.dll |
16.0.30319.314 |
2,510,144 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,588,480 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,630,976 |
30-May-2010 |
20:48 |
x86 |
C2.dll |
16.0.30319.314 |
2,977,600 |
30-May-2010 |
20:48 |
x64 |
C2.dll |
16.0.30319.314 |
7,351,616 |
30-May-2010 |
20:48 |
IA-64 |
Soluție
Soluție pentru problema 1
Pentru a rezolva această problemă, dezactivați optimizare global. Pentru mai multe informații despre cum se dezactivează optimizare global, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
216181 FIX: cod incorect generat cu /Og optimizare
Soluție pentru problema 2
Pentru a rezolva această problemă, utilizați următoarele pragma directivă pentru a include fișierul Atlcomcli.h.
#pragma push_macro("ATLSTATIC_ASSERT")
#undef ATLSTATIC_ASSERT
#define ATLSTATIC_ASSERT(x,y)
#include <atlcomcli.h>
#undef ATLSTATIC_ASSERT
#pragma pop_macro("ATLSTATIC_ASSERT")