Požymiai
Naudodami parinktį /Ot (naudai greitai kodas) kompiliatorius, kai kuriate programą, kuri yra sukonfigūruotas x64 platformos Microsoft Visual Studio 2005 1 pakeitimų pakete (SP1). Kai paleidžiate programą, kai Jei ataskaitos gali veikti netinkamai. Todėl, kad rezultatai yra nenuspėjami. Pvz., Jei ataskaitos gali būti praleista sugeneruotame kode taikomosios programos.
Ši problema iškyla tik tokią situaciją.
-
Nėra kai kurių MOV nurodymų tarp dviejų palyginti operacijų.
-
Tai palyginti operacijų naudoti patį operandų.
-
Toliau operandų reikšmės yra pakeisti MOV nurodymus.
Pagal šį scenarijų, ir Jei pareiškimai antroji palyginti operacija gali būti praleista.
Pastabos
-
Ši problema gali kilti, kai naudojate parinktį/O2 arba /Ox parinktį sukurti programos.
-
Ši problema neiškyla x86 platforma.
Priežastis
Ši problema kyla dėl to optimizavimo kompiliatorius neteisingai mano vėliavėlę, kurios nustato XOR operacija galima be palyginimas operacija.
Sprendimas
Karštųjų pataisų informacija
„Microsoft“ pateikia palaikomas karštąsias pataisas. Tačiau šios karštosios pataisos skirtos tik šiame straipsnyje aprašytai problemai spręsti. Taikykite šias karštąsias pataisas tik tose sistemose, kuriose kyla šiame straipsnyje aprašoma problema. Šios karštosios pataisos gali būti papildomai testuojamos. Todėl jei ši triktis nekelia jums labai didelių problemų, rekomenduojame palaukti kito programinės įrangos naujinimo, kuriame bus šios karštosios pataisos.
Jeigu karštąsias pataisas galima atsisiųsti, šio žinių bazės straipsnio viršuje yra skyrius „Galima atsisiųsti karštąsias pataisas“. Jei šis skyrius nerodomas, kreipkitės į „Microsoft“ klientų aptarnavimo ir palaikymo tarnybą, kad gautumėte karštąsias pataisas.
Pastaba. Jeigu kyla papildomų problemų arba jei reikia šalinti triktis, gali reikėti pateikti atskirą užklausą. Už papildomą pagalbą dėl problemų ir klausimų, nesusijusių su čia nurodytomis karštosiomis pataisomis, bus taikomi įprasti mokesčiai už pagalbos paslaugas. Sąrašą Microsoft klientų aptarnavimo ir palaikymo tarnybos telefonų numerių arba sukurti atskirą aptarnavimo užklausą, apsilankykite šioje "Microsoft" svetainėje:
http://support.microsoft.com/contactus/?ws=supportPastaba. Formoje „Galima atsisiųsti karštąsias pataisas“ nurodomos kalbos, kurioms skirtos karštosios pataisos. Jei nematote savo kalbos, tai kalbai skirtų karštųjų pataisų nėra.
Būtinosios sąlygos
Turite Visual Studio 2005 SP 1 Norint taikyti šias karštąsias pataisas.
Reikalavimas paleisti iš naujo
Pritaikius šias karštąsias pataisas kompiuterio nereikia paleisti iš naujo.
Karštųjų pataisų pakeitimo informacija
Šios karštosios pataisos nepakeičia jokių kitų karštųjų pataisų.
Failo informacija
Šių karštųjų pataisų anglų k. versijos failo atributai (failo atributai) yra išvardyti toliau pateiktoje lentelėje. Datos ir laiko informacija pateikta pagal universalųjį laiką (UTC). Kai peržiūrite failo informaciją, ši informacija konvertuojama į vietos laiką. Norėdami sužinoti UTC ir vietos laiko skirtumą, naudokite valdymo skydo elemento Data ir laikas skirtuką Laiko juosta.
Failo vardas |
Failo versija |
Failo dydis |
Data |
Laikas |
Platforma |
---|---|---|---|---|---|
C2.dll |
14.0.50727.3080 |
2,273,280 |
2008 m. lapkričio 19 |
18:52 |
x86 |
C2.dll |
14.0.50727.3080 |
7,192,576 |
2008 m. lapkričio 19 |
23:25 |
IA-64 |
C2.dll |
14.0.50727.3080 |
2,490,368 |
2008 m. lapkričio 19 |
23:26 |
x86 |
C2.dll |
14.0.50727.3080 |
3,600,384 |
2008 m. lapkričio 19 |
23:33 |
x64 |
C2.dll |
14.0.50727.3080 |
2,203,648 |
2008 m. lapkričio 19 |
23:33 |
x86 |
Sprendimas
Norėdami išspręsti šią problemą, naudokite vieną iš toliau nurodytų būdų:
-
Naudoti nepastovi raktinių žodžių, kai paskelbti kintamųjų, kurie naudojami Jei ataskaitose.
-
Išjunkite parinktį greičio optimizavimas. Pvz., pakeiskite parinktį /Ot parinktį /Os (naudai Small kodas) . Arba naudokite parinktį/O1 vietoj parinkties/O2 arba /Ox parinktis.
-
Pridėti kodo eilutę, prieš Jei ataskaitos antroje palyginti operacija. Pvz., pridėti printf patvirtinimą.
Būsena
„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.
Daugiau informacijos
Daugiau informacijos apie vieną arba kelis kodas ataskaitos gali veikti netinkamai naudojant Visual Studio 2005 kodo optimizavimo funkciją, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:
925792 vieną ar daugiau kodas teiginių gali veikti netinkamai naudojant kodą optimizavimo funkciją Visual Studio 2005
Norėdami gauti daugiau informacijos apie programinės įrangos naujinimo terminiją, spustelėkite toliau esančio straipsnio numerį ir peržiūrėkite „Microsoft“ žinių bazės straipsnį:
824684 standartinę terminologiją, vartojamą Microsoft programinės įrangos naujinimams apibūdinti, aprašas