Det finns en snabbkorrigering som löser flera problem i Microsoft Visual Studio 2010

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")

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Hur nöjd är du med översättningskvaliteten?

Vad påverkade din upplevelse?

Har du ytterligare feedback? (Valfritt)

Tack för din feedback!

×