Introduktion
Snabbkorrigeringen som beskrivs i den här artikeln åtgärdas följande problem i Microsoft Visual Studio 2010.
Problem 1
Du får oväntade resultat när du kör ett program med slingor i källkoden. Det här problemet uppstår om källkoden kompileras med global optimering (/ Og) aktiverat.
Problem 2
Föreställ dig följande:
-
Du har ett Visual C++-projekt som innehåller filen Atlcomcli.h.
-
Du anger alternativet /J kompilatorn att definiera den_CHAR_UNSIGNEDmakrot i projektet.
-
Du kompilerar projektet.
I det här scenariot visas något av följande felmeddelanden:
-
fel C2338: CVarTypeInfo < char > kan inte kompileras med /J eller _CHAR_UNSIGNED-flaggan aktiverad
-
fel C2338: CVarTypeInfo < char * > kan inte kompileras med /J eller _CHAR_UNSIGNED-flaggan aktiverad
Problem 3
Ett åtkomstfel uppstår när du kör ett Visual C++-program som är byggd för en x86-baserad version av Windows. Det här problemet uppstår när programmet har en uttrycksträdet som har två indataargument för typ av matris.
Orsak
Orsaken till problem 1
Det här problemet beror på en felaktig loop-optimering utförs. Detta medför att felaktig kodgenerering.
Orsaken till problemet 2
Det här problemet uppstår eftersom statisk påståenden i filen Atlcomcli.h är inställd på alternativet /J och makrot CHAR_UNSIGNED felaktigt.
Orsaken till problemet 3
Det här problemet uppstår eftersom argumenten i push instruktioner blandas. Felaktiga argument skickas därför för att driva instruktioner.
Mer Information
Information om snabbkorrigeringen
En snabbkorrigering är nu tillgänglig från Microsoft. Den är emellertid avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på nästa Visual Studio 2010 som innehåller den här snabbkorrigeringen.
Om du vill lösa problemet omedelbart kontaktar du Microsoft support för att få snabbkorrigeringen. En fullständig lista över telefonnummer till Microsoft Customer Support Services och information om supportkostnader finns på följande Microsoft-webbplats:
http://support.microsoft.com/contactus/?ws=supportObs! I särskilda fall avbryts de avgifter som är normala för supportsamtal om en supporttekniker anser att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte berör den särskilda uppdateringen.
Förutsättningar
Du måste ha Microsoft Visual Studio 2010 installerat för att kunna installera den här snabbkorrigeringen.
Krav på omstart
Du behöver inte starta om datorn när du har installerat snabbkorrigeringen om ingen av dessa filer används.
Ersättningsinformation för Hotfix
Den här snabbkorrigeringen ersätter inte några andra snabbkorrigeringar.
Filinformation
Den engelska versionen av den här snabbkorrigeringen har de filattribut (eller senare filattribut) som visas i följande tabell. Datum och tider för dessa filer anges i UTC-tid (UTC). När du visar filinformationen konverteras den till lokal tid. Om du vill se skillnaden mellan UTC-tid och lokal tid kan du använda den
Tidszon
fliken i den
Datum och tid
objekt på Kontrollpanelen.
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
---|---|---|---|---|---|
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 |
Temporär lösning
Lösning på problem 1
Undvik det här problemet genom att inaktivera global optimering. För mer information om hur du inaktiverar global optimering klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
216181 KORRIGERA: felaktig kod genereras med /Og optimering
Lösning på problem 2
Undvik det här problemet genom att använda följande pragma-direktiv för att inkludera filen 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")