Požymiai
Įsivaizduokite tokią situaciją:
-
Įgalinsite parinktį visuotinio optimizavimas (/Og) atitinka vieną iš šių parinkčių:
-
/O1
-
/O2
-
/Ox
-
-
Galite sukurti Microsoft Visual C ++ šaltinio failą naudodami Microsoft Visual Studio 2008 1 pakeitimų paketas (SP1).
-
Šaltinio failo iškviečia funkciją setjmp , longjmp funkcija arba abi šias funkcijas.
Tokiu atveju kompiliatorius gali naudoti patį dėklo poslinkis saugoti kitą vietos kintamuosius. Todėl gali iškilti netikėta problema, kai paleidžiate sugeneruotas programa.
Priežastis
Ši problema kyla dėl to, kad optimizavimo neturi sąskaitos setjmp funkcija arba longjmp funkcija. Dėl neteisingai apskaičiuoti vietos kintamųjų naudojimo optimizavimo. Pakeitus vieną kintamąjį, gali netikėtai pasikeičia kitą kintamąjį.
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. Nedelsdami išspręsti šią problemą, kreipkitės į "Microsoft" klientų palaikymo tarnybą ir įsigykite šias karštąsias pataisas. Jei reikia išsamaus „Microsoft“ klientų aptarnavimo ir palaikymo tarnybos telefono numerių sąrašo arba norite pateikti atskirą užklausą, apsilankykite toliau nurodytoje „Microsoft“ svetainėje:
http://support.microsoft.com/contactus/?ws=supportPastaba Konkrečiais atvejais už palaikymo skambučius taikomi įprasti mokesčiai gali būti atšaukti, jei "Microsoft" techninės pagalbos specialistas nusprendžia, kad jūsų problemą galima išspręsti naudojant konkretų naujinimą. Į įprastos kainos už palaikymą taikomos papildomos palaikymo klausimams ir problemoms, kurių negalima išspręsti naudojant minėtą naujinimą. Norėdami atsisiųsti šias karštąsias pataisas iš "Microsoft" programų kūrėjų tinklo (MSDN) kodų galerijos, apsilankykite šioje "Microsoft" svetainėje:
http://code.msdn.microsoft.com/KB2498381Pastaba MSDN kodas galerijoje rodo su kalbomis, kurios karštąsias pataisas. Jei nematote savo kalbos, vadinasi, kodas galerija išteklių puslapyje nėra tos kalbos. Arba galite atsisiųsti šią karštąją pataisą iš šioje "Microsoft Connect" svetainėje:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=34826
Būtinosios sąlygos
Norint taikyti šias karštąsias pataisas, turite Microsoft Visual Studio 2008 pakeitimų paketas 1 įdiegta.
Informacija apie paleidimą iš naujo
Turite iš naujo paleisti kompiuterį, kai įdiegsite šias karštąsias pataisas, jeigu visais atvejais "Visual Studio" versijomis.
Karštųjų pataisų pakeitimo informacija
Šios karštosios pataisos nepakeičia anksčiau išleistų karštųjų pataisų.
Failo informacija
Visuotinė šios karštosios pataisos versija įdiegia failus, kurie turi šiose lentelėse pateiktus atributus. Šių failų datos ir laikai yra išvardyti pagal universalųjį laiką (UTC). Šių failų datos ir laikai vietiniame kompiuteryje rodomi vietiniu laiku, vasaros / žiemos laiku (DST). Be to, šios datos ir laikai gali keistis, kai atliekate tam tikras operacijas su failais.
Failo vardas |
Failo versija |
Failo dydis |
Data |
Laikas |
Platforma |
---|---|---|---|---|---|
C2.dll |
15.0.30729.6147 |
2,283,840 |
2011-vas-25 |
01:25 |
x86 |
C2.dll |
15.0.30729.6147 |
2,362,688 |
2011-vas-25 |
01:25 |
x86 |
C2.dll |
15.0.30729.6147 |
2,493,248 |
2011-vas-25 |
01:25 |
x86 |
C2.dll |
15.0.30729.6147 |
3,018,048 |
2011-vas-25 |
01:25 |
x64 |
C2.dll |
15.0.30729.6147 |
7,263,040 |
25-Feb-2011 |
01:25 |
IA-64 |
Link.exe |
9.0.30729.6147 |
1,055,560 |
2011-vas-25 |
01:25 |
x64 |
Link.exe |
9.0.30729.6147 |
2,135,368 |
25-Feb-2011 |
01:25 |
IA-64 |
Link.exe |
9.0.30729.6147 |
800,584 |
25-Feb-2011 |
01:25 |
x86 |
Sprendimas
Norėdami išspręsti šią problemą, inicijuoti vietos kintamieji pradžioje, funkciją, kad gali būti apie esančius kintamuosius laiko kompiliatorius.
Būsena
„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.
Daugiau informacijos
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 Įprastos terminologijos, vartojamos „Microsoft“ programinės įrangos naujinimams apibūdinti, aprašas