Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Simptome

Utilizaţi opţiunea de compilator /Ot (favoarea rapidă cod) la compilarea o aplicație care este configurată pe x64 platforma Microsoft Visual Studio 2005 Service Pack 1 (SP1). Când executați aplicația, unele declarații dacă să se execute incorect. De aceea, rezultatele sunt neprevăzute. De exemplu, dacă declarațiile poate fi omis în codul generat de aplicație.

Această problemă apare numai în următorul scenariu.

  • Există câteva instrucţiuni MOV între două operațiuni de comparare.

  • Acestea compara operațiuni utilizarea operatorii același.

  • Valorile operatorii sunt modificate de instrucțiunile MOV.

În acest scenariu, declarații dacă în operațiunea de comparare a doua poate fi omis.

Note

  • Această problemă poate apărea, de asemenea, atunci când utilizați opțiunea /O2 sau /Ox la compilarea aplicației.

  • Această problemă se produce pe x86 platformă.

Cauza

Această problemă apare deoarece optimizer compilator incorect presupune că se poate utiliza semnalizatorul care este setat de operația XOR fără a include o operațiune de comparare.

Rezolvare

Informații despre remedierea rapidă

O remediere rapidă compatibilă este disponibilă de la Microsoft. Cu toate acestea, această remediere rapidă este destinată pentru a corecta doar problema descrisă în acest articol. Aplicați această remediere rapidă numai pentru sistemele care întâmpină problema descrisă în acest articol. 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 actualizare software care conţine această remediere rapidă.

Dacă remedierea rapidă este disponibilă pentru descărcare, există o secțiune "Descărcare remediere rapidă disponibilă" în partea de sus a acestui articol din baza de cunoștințe. Dacă nu apare această secţiune, contactaţi Microsoft Client Service și suport pentru a obţine remedierea rapidă.

Notă Dacă se produc probleme suplimentare sau este necesară depanarea, poate fi necesar să creați o solicitare de asistenţă separată. Costurile de obicei pentru suport se vor aplica pentru sprijin suplimentar, întrebări și probleme care nu sunt specifice pentru această remediere rapidă . Pentru o listă completă cu numerele de telefon ale clienților servicii și asistență Microsoft sau pentru a crea o solicitare de asistenţă separată, vizitați următorul site Web Microsoft:

http://support.microsoft.com/contactus/?ws=supportNotă Formularul "Descărcare remediere rapidă disponibilă" afişează limbile pentru care este disponibilă remedierea rapidă. Dacă nu vedeți limba dvs., înseamnă că o remediere rapidă nu este disponibilă pentru respectiva limbă.

Cerințe preliminare

Trebuie să aveți Visual Studio 2005 SP 1 instalat pentru a aplica această remediere rapidă.

Cerinţă de repornire

Nu trebuie să reporniți computerul după aplicarea acestei remedieri rapide.

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 găsi diferenţa dintre UTC şi ora locală, utilizaţi fila Fusul orar în elementul de Data şi ora în Panoul de Control.

Nume de fișier

Versiune fișier

Dimensiune fișier

Data

Ora

Platformă

C2.dll

14.0.50727.3080

2,273,280

19-Nov-2008

18:52

x86

C2.dll

14.0.50727.3080

7,192,576

19-Nov-2008

23:25

IA-64

C2.dll

14.0.50727.3080

2,490,368

19-Nov-2008

23:26

x86

C2.dll

14.0.50727.3080

3,600,384

19-Nov-2008

23:33

x64

C2.dll

14.0.50727.3080

2,203,648

19-Nov-2008

23:33

x86

Soluție

Pentru a rezolva această problemă, utilizați una dintre următoarele metode:

  • Utilizați cuvinte cheie volatile atunci când declarare a variabilelor care sunt utilizate în cazul în care declarațiile.

  • Dezactivați opțiunea de optimizare viteză. De exemplu, înlocuiți opțiunea /Ot cu opțiunea /Os (cod favoarea mic) . Sau, utilizați opțiunea /O1 în loc de opțiunea /O2 sau /Ox .

  • Adăugați o linie de cod înainte de declarații dacă în a doua compara operațiune. De exemplu, adăugați o instrucțiune printf .

Stare

Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".

Mai multe informații

Pentru mai multe informații despre codul de unul sau mai multe instrucțiuni să se execute incorect atunci când utilizați caracteristica de optimizare cod în Visual Studio 2005, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:

925792 unul sau mai multe instrucțiuni cod poate executa incorect atunci când utilizați caracteristica de optimizare cod în Visual Studio 2005

Pentru mai multe informaţii despre terminologia privind actualizarea software-ului, faceţi clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoştinţe Microsoft:

824684 Descrierea terminologiei standard care este utilizat pentru a descrie actualizările de software Microsoft

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×