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

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.