Sissejuhatus
Käesolevas artiklis kirjeldatav käigultparandus parandab järgmised probleemid Microsoft Visual Studio 2010.
Küsimus 1
Kui käivitate rakenduse, mis on silmuseid lähtekoodi käitub ootamatul viisil. See probleem ilmneb juhul, kui lähtekoodi on kompileeritud globaalse optimeerimine (/ Og) lubatud.
2. probleem
Kujutage ette järgmist stsenaariumi.
-
Teil on Visual C++ projekti, mis sisaldab faili Atlcomcli.h.
-
Saate määrata kompilaatori /J võimalus määrata selle_CHAR_UNSIGNEDmakro projekti.
-
Projekti koostamine.
Selle stsenaariumi puhul kuvatakse üks järgmistest tõrketeadetest:
-
tõrge C2338: CVarTypeInfo < char > ei saa kompileerida lubatud /J või _CHAR_UNSIGNED lipp
-
tõrge C2338: CVarTypeInfo < char * > ei saa kompileerida lubatud /J või _CHAR_UNSIGNED lipp
Küsimus 3
Juurdepääs rikkumine tekib siis, kui käivitate Visual C++ rakendus, mis on loodud Windowsi x86-põhise versiooni jaoks. See probleem ilmneb, kui taotlus on väljend puu, millel on kaks massiiv-tüüpi sisestatud argumente.
Põhjus
1. probleem põhjus
See probleem ilmneb, sest vale silmus optimeerimine käivitatakse. See põhjustab vale koodi loomine.
Küsimus 2 põhjus
See probleem ilmneb seetõttu staatiline kinnitused Atlcomcli.h failis on valesti seadistatud /J variant ja CHAR_UNSIGNED makro.
Küsimus 3 põhjus
See probleem ilmneb seetõttu push juhiseid argumendid on segamini. Seetõttu on valed argumendid edasi lükata juhiseid.
Lisateabe saamiseks
Kiirparanduse teave
Lasknud välja toetatava käigultparanduse on nüüd Microsoftilt saadaval. See on mõeldud üksnes käesolevas artiklis kirjeldatud probleemi lahendamiseks. Rakendage seda ainult süsteemides, kus ilmneb see konkreetne probleem. Seda käigultparandust võidakse täiendavalt testida. Seega, kui probleem teie tööd tõsiselt ei kahjusta, soovitame oodata järgmise Visual Studio 2010, mis sisaldab seda kiirparandust.
Probleemi kohe lahendada, pöörduge vastava kiirparanduse hankimiseks Microsofti klienditoe. Täieliku loendi Microsofti klienditugiteenuste pakkujate telefoninumbrite ja tugiteenuste hinnateabe hankimiseks külastage järgmist Microsofti veebisaiti:
http://support.microsoft.com/contactus/?ws=supportMärkus. Erijuhtudel võib kulud, mis tekivad teatud tugiteenuse telefonikõnede maksumus tühistada, kui Microsofti tugiteenusepakkuja leiab, et mõni konkreetne värskendus lahendab teie probleemi. Tavaline tugiteenuste kohaldatakse täiendavat tugiteenust vajavatele küsimustele ning probleemidele, mis pole lahendatavad konkreetse värskenduse installimisega.
Eeltingimused
Microsoft Visual Studio 2010 selle kiirparanduse rakendamiseks peab teil olema.
Taaskäivitamise nõue
Teil pole vaja arvutit taaskäivitada pärast käigultparanduse rakendamist pole kahjustatud faili kasutamisel.
Kiirparanduse asendamise teave
See kiirparandus ei asenda ühtegi muud käigultparandust.
Failiteave
Sellel kiirparanduse ingliskeelsel versioonil on failiatribuudid (või hilisemad failiatribuudid), mis on loetletud järgmises tabelis. Kuupäevad ja kellaajad need failid jaoks on loetletud maailmaaja järgi (UTC). Faili teabe vaatamisel teisendatakse see kohalikule ajale. UTC-aja ja kohaliku aja erinevuse väljaselgitamiseks kasutage selle
Ajavöönd
Klõpsake vahekaardil on
Kuupäev ja kellaaeg
juhtpaneeli üksuse.
Faili nimi |
Faili versioon |
Faili maht |
Kuupäev |
Aeg |
Platvorm |
---|---|---|---|---|---|
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 |
Lahendus
1. probleemi lahendus
Selle probleemi lahendamiseks keelake globaalne optimeerimine. Globaalne optimeerimine keelamise kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:
216181 FIX: vale kood luuakse /Og optimeerimine
Küsimus 2 lahendus
Selle probleemi lahendamiseks kasutage järgmist pragma direktiivi kaasa Atlcomcli.h faili.
#pragma push_macro("ATLSTATIC_ASSERT")
#undef ATLSTATIC_ASSERT
#define ATLSTATIC_ASSERT(x,y)
#include <atlcomcli.h>
#undef ATLSTATIC_ASSERT
#pragma pop_macro("ATLSTATIC_ASSERT")