Úvod
Oprava hotfix popsaná v tomto článku řeší následující problémy v aplikaci Microsoft Visual Studio 2010.
Problém 1
Dochází k neočekávanému chování při spuštění aplikace, která má opakování ve zdrojovém kódu. K tomuto problému dochází, pokud je zdrojový kód zkompilován s globální optimalizace (/ Og) povolena.
Problém 2
Jde o takovouto situaci:
-
Máte projekt Visual C++, který obsahuje soubor Atlcomcli.h.
-
Zadejte možnost kompilátoru /J definovat_CHAR_UNSIGNEDmakro v projektu.
-
Při kompilaci projektu.
V tomto scénáři obdržíte jednu z následujících chybových zpráv:
-
Chyba C2338: CVarTypeInfo < char > nelze zkompilovat /J nebo _CHAR_UNSIGNED příznaku povoleno
-
Chyba C2338: CVarTypeInfo < char * > nelze zkompilovat /J nebo _CHAR_UNSIGNED příznaku povoleno
Problém 3
Dochází k narušení přístupu při spuštění aplikace Visual C++, který je sestaven na základě x86 verzi systému Windows. K tomuto problému dochází, pokud aplikace má strom výrazů, která má dva vstupní argumenty typu pole.
Příčina
Příčina problému 1
K tomuto problému dochází, protože je prováděna optimalizace nesprávné smyčky. To způsobí nesprávné generování kódu.
Příčina problému 2
K tomuto problému dochází, protože statické kontrolní výrazy v souboru Atlcomcli.h jsou nesprávně nastavena na možnost/j a CHAR_UNSIGNED makra.
Příčina problému 3
K tomuto problému dochází, protože argumenty v pokynech push se promíchají. Proto nesprávné argumenty jsou předány instrukce push.
Další informace
Informace o opravě hotfix
Podporovaná oprava hotfix je nyní k dispozici od společnosti Microsoft. Je však určena opravit pouze problém popsaný v tomto článku. Použijte ji pouze u systémů, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud jste závažně tento problém, doporučujeme počkat další aplikace Visual Studio 2010, která obsahuje tuto opravu hotfix.
Chcete-li tento problém vyřešit okamžitě, obraťte se na technickou podporu společnosti Microsoft získat opravu hotfix. Úplný seznam telefonních čísel služeb podpory zákazníků společnosti Microsoft a informace o cenách podpory naleznete na následujícím webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=supportPoznámka: Ve zvláštních případech mohou být stornovány poplatky, které jsou třeba obvykle zaplatit za telefonní hovory, pokud pracovník služeb podpory společnosti Microsoft určí, že konkrétní aktualizace odstraní váš problém. Výdaje na technickou podporu použije dalších otázek a problémů, které nelze vyřešit konkrétní aktualizací.
Předpoklady
Musíte mít Microsoft Visual Studio 2010 instalaci Chcete-li nainstalovat tuto opravu hotfix.
Požadavek na restartování
Nemáte k restartování počítače po instalaci opravy hotfix, pokud není ohrožený soubor je používán.
Informace o nahrazení opravy hotfix
Tato oprava hotfix nenahrazuje žádné další opravy hotfix.
Informace o souborech
Anglická verze této opravy hotfix má atributy (nebo pozdější atributy souborů) uvedené v následující tabulce. Kalendářní data a časy jednotlivých souborů jsou uvedeny v koordinovaném světovém čase (UTC). Při zobrazení informací o souboru je převeden na místní čas. Chcete-li najít rozdíl mezi místním časem a UTC, použijte
Časové pásmo
karty v
Datum a čas
Chcete-li zobrazit položky v Ovládacích panelech.
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
---|---|---|---|---|---|
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 |
Jak potíže obejít
Řešení pro problém 1
Chcete-li tento problém vyřešit, zakažte globální optimalizace. Další informace o tom, jak zakázat globální optimalizace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
216181 OPRAVA: nesprávný kód generovaný s /Og optimalizace
Řešení pro problém 2
Chcete-li tento problém vyřešit, pomocí následující direktivy pragma zahrnout soubor 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")