Příznaky
Použijte možnost kompilátoru /Ot (něco pro rychlé kód) při vytváření aplikace, která je nakonfigurována na x64 platform v Microsoft Visual Studio 2005 Service Pack 1 (SP1). Při spuštění aplikace, některé příkazy Pokud může pracovat nesprávně. Proto jsou výsledky nepředvídatelné. Například Pokud příkazy lze přeskočit do generovaného kódu aplikace.K tomuto problému dochází pouze v následující situaci.
-
Existují některé pokyny MOV mezi dvě operace porovnání.
-
Tyto operace použití porovnání stejné operandy.
-
Podle pokynů MOV jsou změněny hodnoty operandy.
V tomto scénáři Pokud příkazy v druhém operace porovnání mohou být přeskočeny.Poznámky
-
Tomuto problému může dojít také při použití parametru /O2 nebo /Ox možnost pro sestavení aplikace.
-
Tento problém se nevyskytuje v x86 platformě.
Příčina
K tomuto problému dochází, protože optimalizace kompilátoru nesprávně předpokládá, že bez operace porovnání lze použít příznak, který je nastaven pomocí operace XOR.
Řešení
Informace o opravě hotfix
Společnost Microsoft má k dispozici podporovanou opravu hotfix. Tato oprava hotfix je však určena pouze problému popsanému v tomto článku. Tuto opravu hotfix instalujte pouze do systémů, ve kterých dochází k potížím popsaným v tomto článku. Tato oprava hotfix může být dále testována. Proto pokud nejste vážně ohrožen tímto problémem, doporučujeme počkat na další aktualizaci softwaru, která obsahuje tuto opravu hotfix.Pokud je oprava hotfix k dispozici ke stažení, je v horní části tohoto článku znalostní báze Knowledge Base oddíl "Oprava Hotfix je dostupná ke stažení" . Pokud tato sekce není uvedena, obraťte se na Zákaznický servis a podporu společnosti Microsoft k získaní opravy hotfix.Poznámka: Pokud nastanou další problémy nebo bude nutné další řešení potíží, bude možná třeba vytvořit další samostatný požadavek na služby. Běžná cena za technickou podporu se vztahuje k dodatečným otázkám podpory a k problémům, které se netýkají této konkrétní opravy hotfix. Úplný seznam telefonních čísel služeb zákazníkům společnosti Microsoft a podpoře nebo vytvořit zvláštní požadavek na službu naleznete na následujícím webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=supportPoznámka: Ve formuláři „Oprava hotfix je dostupná ke stažení“ se zobrazují jazyky, pro které je oprava hotfix k dispozici. Pokud váš jazyk není zobrazen, to je protože oprava hotfix není k dispozici pro daný jazyk.
Předpoklady
Visual Studio 2005 SP 1 nainstalovat tuto opravu hotfix, musí mít.
Požadavek na restartování
Po instalaci této opravy hotfix nemusíte restartovat počítač.
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. Rozdíl mezi místním časem a časem UTC naleznete na kartě Časové pásmo v položce Datum a čas v okně Ovládací panely.
|
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
|---|---|---|---|---|---|
|
C2.dll |
14.0.50727.3080 |
2,273,280 |
19. listopadu 2008 |
18:52 |
x86 |
|
C2.dll |
14.0.50727.3080 |
7,192,576 |
19. listopadu 2008 |
23:25 |
IA-64 |
|
C2.dll |
14.0.50727.3080 |
2,490,368 |
19. listopadu 2008 |
23:26 |
x86 |
|
C2.dll |
14.0.50727.3080 |
3,600,384 |
19. listopadu 2008 |
23:33 |
x64 |
|
C2.dll |
14.0.50727.3080 |
2,203,648 |
19. listopadu 2008 |
23:33 |
x86 |
Jak potíže obejít
Chcete-li tento problém vyřešit, použijte jednu z následujících metod:
-
Použití těkavých klíčové slovo při deklarování proměnné, které se používají v případě prohlášení.
-
Zakažte možnost optimalizace rychlosti. Například nahraďte /Ot možnost s parametrem /Os (něco pro malé kód) . Nebo místo /O2 nebo /Ox možnost použít možnost /O1 .
-
Přidáte řádek kódu před operace porovnání Pokud příkazy v druhém. Například přidáte příkaz printf .
Stav
Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".
Další informace
Další informace o kódu jeden nebo více příkazů mohou spustit nesprávně při použití funkce optimalizace kódu v aplikaci Visual Studio 2005 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
925792 jeden nebo více příkazů kódu mohou spustit nesprávně při použití funkce optimalizace kódu v aplikaci Visual Studio 2005Pro další informace o terminologii používané v aktualizacích softwaru, klepněte na následující číslo článku k zobrazení článku v databázi Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft