Příznaky
V počítači se systémem Microsoft.NET Framework 3.5 Service Pack 1 (SP1) kompilátor just-in-time (JIT) a Native Image Generator (Ngen.exe), které používají soubor Mscorjit.dll může způsobit nesprávný kód. Proto aplikace Managed C++ 32-bit, může způsobit nesprávné výsledky.
K tomuto problému dochází, pokud jsou splněny následující podmínky:
-
Struct nebo class ve zdrojovém kódu je méně než čtyři odrůdy skalární a žádný odkaz na spravovaný objekt.
-
Můžete použít Cpblk instrukce nebo Initblk instrukce.
Poznámka: Tento problém se nevyskytuje v 64bitových aplikací.
Příčina
K tomuto problému dochází z důvodu regrese v rozhraní.NET Framework 3.5 SP1.
Ř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. Použití této opravy hotfix 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 nejste vážně ohrožen tímto problémem, doporučujeme počkat na další aktualizaci softwaru, která obsahuje tuto opravu hotfix.
Chcete-li stáhnout tuto opravu hotfix z Galerie kódu MSDN, navštivte následující Web společnosti Microsoft:
http://code.msdn.microsoft.com/KB957542
Poznámka: Galerie kódu MSDN zobrazí jazyky, pro které je oprava hotfix k dispozici. Pokud není uveden jazyk, je protože zdroj stránky galerie kód není k dispozici pro daný jazyk.
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: Pokud je 32bitová aplikace, která běží na 64bitovou platformu, opravy hotfix pro 64bitové verze, chcete-li vyřešit tento problém.
Předpoklady
Musíte mít rozhraní.NET Framework 3.5 SP1 nainstalovali tuto opravu hotfix.
Požadavek na restartování
Bude pravděpodobně nutné restartovat počítač, pokud jsou používány některý ze souborů, které jsou aktualizovány.
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.
Systém Windows 2000, Windows XP a Windows Server 2003, x86 verze
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
---|---|---|---|---|
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
16-Sep-2008 |
13:13 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
16-Sep-2008 |
13:13 |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
16-Sep-2008 |
13:13 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
16-Sep-2008 |
13:13 |
Systém Windows 2000, Windows XP a Windows Server 2003, x64 verze
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
---|---|---|---|---|---|
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
16-Sep-2008 |
13:13 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
16-Sep-2008 |
13:13 |
x86 |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
16-Sep-2008 |
13:13 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
16-Sep-2008 |
13:13 |
x86 |
Mscordacwks.dll |
2.0.50727.3068 |
1,767,944 |
16-Sep-2008 |
10:33 |
x64 |
Mscorjit.dll |
2.0.50727.3068 |
1,580,032 |
16-Sep-2008 |
10:33 |
x64 |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
16-Sep-2008 |
10:33 |
x64 |
Mscorwks.dll |
2.0.50727.3068 |
10,079,744 |
16-Sep-2008 |
10:33 |
x64 |
Systém Windows 2000, Windows XP a Windows Server 2003 IA-64 verze
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
---|---|---|---|---|---|
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
16-Sep-2008 |
13:13 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
16-Sep-2008 |
13:13 |
x86 |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
16-Sep-2008 |
13:13 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
16-Sep-2008 |
13:13 |
x86 |
Mscordacwks.dll |
2.0.50727.3068 |
3,087,880 |
16-Sep-2008 |
10:44 |
IA-64 |
Mscorjit.dll |
2.0.50727.3068 |
2,560,512 |
16-Sep-2008 |
10:44 |
IA-64 |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
16-Sep-2008 |
10:44 |
IA-64 |
Mscorwks.dll |
2.0.50727.3068 |
20,153,856 |
16-Sep-2008 |
10:44 |
IA-64 |
Windows Vista Service Pack 1 (SP1) a Windows Server 2008, x86 verze
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
---|---|---|---|---|---|
Mscorlib.resources.dll |
2.0.50727.3053 |
352,256 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
425,984 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307,200 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
331,776 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307,200 |
27-Jul-2008 |
17:55 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
348,160 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
319,488 |
27-Jul-2008 |
17:55 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
290,816 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
27-Jul-2008 |
17:55 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307,200 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.1434 |
397,312 |
11-Jan-2008 |
22:59 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:55 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:55 |
x86 |
Big5.nlp |
Není k dispozici |
66,728 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Bopomofo.nlp |
Není k dispozici |
82,172 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Ksc.nlp |
Není k dispozici |
116,756 |
18-Dec-2007 |
21:04 |
Není k dispozici |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Není k dispozici |
59,342 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfc.nlp |
Není k dispozici |
45,794 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfd.nlp |
Není k dispozici |
39,284 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfkc.nlp |
Není k dispozici |
66,384 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfkd.nlp |
Není k dispozici |
60,294 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Prc.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Prcp.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Sortkey.nlp |
Není k dispozici |
262,148 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Sorttbls.nlp |
Není k dispozici |
20,320 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Xjis.nlp |
Není k dispozici |
28,288 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
01-Oct-2008 |
22:27 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
24-Sep-2008 |
22:21 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
01-Oct-2008 |
22:27 |
x86 |
Aktualizace Windows Vista SP1 a Windows Server 2008, x64 verze
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
---|---|---|---|---|---|
Big5.nlp |
Není k dispozici |
66,728 |
18-Dec-2007 |
21:01 |
Není k dispozici |
Bopomofo.nlp |
Není k dispozici |
82,172 |
18-Dec-2007 |
21:01 |
Není k dispozici |
Ksc.nlp |
Není k dispozici |
116,756 |
18-Dec-2007 |
21:02 |
Není k dispozici |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
01-Oct-2008 |
22:25 |
x64 |
Normidna.nlp |
Není k dispozici |
59,342 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Normnfc.nlp |
Není k dispozici |
45,794 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Normnfd.nlp |
Není k dispozici |
39,284 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Normnfkc.nlp |
Není k dispozici |
66,384 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Normnfkd.nlp |
Není k dispozici |
60,294 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Prc.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Prcp.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Sortkey.nlp |
Není k dispozici |
262,148 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Sorttbls.nlp |
Není k dispozici |
20,320 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Xjis.nlp |
Není k dispozici |
28,288 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Mscordacwks.dll |
2.0.50727.3068 |
1,767,944 |
01-Oct-2008 |
22:25 |
x64 |
Mscorjit.dll |
2.0.50727.3068 |
1,580,032 |
24-Sep-2008 |
23:06 |
x64 |
Mscorwks.dll |
2.0.50727.3068 |
10,079,744 |
01-Oct-2008 |
22:25 |
x64 |
Mscorlib.resources.dll |
2.0.50727.3053 |
352,256 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
27-Jul-2008 |
18:02 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
425,984 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307,200 |
27-Jul-2008 |
18:02 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
27-Jul-2008 |
18:02 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
331,776 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307,200 |
27-Jul-2008 |
17:56 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
348,160 |
27-Jul-2008 |
18:02 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
319,488 |
27-Jul-2008 |
17:56 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
290,816 |
15-Sep-2008 |
22:26 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
303,104 |
27-Jul-2008 |
17:56 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
307,200 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.1434 |
397,312 |
11-Jan-2008 |
22:59 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
299,008 |
15-Sep-2008 |
22:25 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:56 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:56 |
x86 |
Big5.nlp |
Není k dispozici |
66,728 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Bopomofo.nlp |
Není k dispozici |
82,172 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Ksc.nlp |
Není k dispozici |
116,756 |
18-Dec-2007 |
21:04 |
Není k dispozici |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Není k dispozici |
59,342 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfc.nlp |
Není k dispozici |
45,794 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfd.nlp |
Není k dispozici |
39,284 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfkc.nlp |
Není k dispozici |
66,384 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfkd.nlp |
Není k dispozici |
60,294 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Prc.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Prcp.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Sortkey.nlp |
Není k dispozici |
262,148 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Sorttbls.nlp |
Není k dispozici |
20,320 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Xjis.nlp |
Není k dispozici |
28,288 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
01-Oct-2008 |
22:27 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
24-Sep-2008 |
22:21 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
01-Oct-2008 |
22:27 |
x86 |
Aktualizace Windows Vista SP1 a Windows Server 2008 IA-64 verze
Název souboru |
Verze souboru |
Velikost souboru |
Datum |
Čas |
Platforma |
---|---|---|---|---|---|
Big5.nlp |
Není k dispozici |
66,728 |
18-Dec-2007 |
21:06 |
Není k dispozici |
Bopomofo.nlp |
Není k dispozici |
82,172 |
18-Dec-2007 |
21:06 |
Není k dispozici |
Ksc.nlp |
Není k dispozici |
116,756 |
18-Dec-2007 |
21:06 |
Není k dispozici |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
01-Oct-2008 |
22:26 |
IA-64 |
Normidna.nlp |
Není k dispozici |
59,342 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Normnfc.nlp |
Není k dispozici |
45,794 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Normnfd.nlp |
Není k dispozici |
39,284 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Normnfkc.nlp |
Není k dispozici |
66,384 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Normnfkd.nlp |
Není k dispozici |
60,294 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Prc.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Prcp.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Sortkey.nlp |
Není k dispozici |
262,148 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Sorttbls.nlp |
Není k dispozici |
20,320 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Xjis.nlp |
Není k dispozici |
28,288 |
18-Dec-2007 |
21:08 |
Není k dispozici |
Mscordacwks.dll |
2.0.50727.3068 |
3,087,880 |
01-Oct-2008 |
22:26 |
IA-64 |
Mscorjit.dll |
2.0.50727.3068 |
2,560,512 |
24-Sep-2008 |
23:14 |
IA-64 |
Mscorwks.dll |
2.0.50727.3068 |
20,153,856 |
01-Oct-2008 |
22:26 |
IA-64 |
Mscorlib.resources.dll |
2.0.50727.3053 |
315,392 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311,296 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
348,160 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
319,488 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
278,528 |
27-Jul-2008 |
17:59 |
x86 |
Big5.nlp |
Není k dispozici |
66,728 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Bopomofo.nlp |
Není k dispozici |
82,172 |
18-Dec-2007 |
21:03 |
Není k dispozici |
Ksc.nlp |
Není k dispozici |
116,756 |
18-Dec-2007 |
21:04 |
Není k dispozici |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Není k dispozici |
59,342 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfc.nlp |
Není k dispozici |
45,794 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfd.nlp |
Není k dispozici |
39,284 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfkc.nlp |
Není k dispozici |
66,384 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Normnfkd.nlp |
Není k dispozici |
60,294 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Prc.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Prcp.nlp |
Není k dispozici |
83,748 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Sortkey.nlp |
Není k dispozici |
262,148 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Sorttbls.nlp |
Není k dispozici |
20,320 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Xjis.nlp |
Není k dispozici |
28,288 |
18-Dec-2007 |
21:05 |
Není k dispozici |
Mscordacwks.dll |
2.0.50727.3068 |
992,264 |
01-Oct-2008 |
22:27 |
x86 |
Mscorjit.dll |
2.0.50727.3068 |
367,104 |
24-Sep-2008 |
22:21 |
x86 |
Mscorwks.dll |
2.0.50727.3068 |
5,815,808 |
01-Oct-2008 |
22:27 |
x86 |
Jak potíže obejít
Chcete-li tento problém vyřešit, použijte jednu z následujících metod.
Metoda 1
Pokud ukázkový kód v části "Další informace" se podobá kódu aplikace, vyhledejte následující řádek kódu.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
Tento řádek kódu změňte následujícím způsobem.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))
Metoda 2
Nasazení souboru INI. Chcete-li to provést, vytvořte soubor, který obsahuje následující kód.
[.NET Framework Debugging Control]AllowOptimize=0
Název souboru INI, stejný jako modul problematické, ale místo DLL rozšíření používají příponu INI. Například pro ukázkový kód v části "Další informace", název souboru INI souboru Bug.ini. Uložte soubor Bug.ini do stejného adresáře jako soubor Bug.dll.
Poznámka: Nevýhodou této metody je potenciální vliv na výkon pro žádné optimalizace. Používáte-li k předkompilaci modul Native Image Generator (Ngen.exe), tato metoda není použitelná.
Metoda 3
Selektivně použít možnost NoOptimization MethodImplOptions výčtu problematické metody pomocí třídy MethodImplAttribute .
Poznámka: Tato metoda zakáže optimalizace kompilátor JIT a Native Image Generator (Ngen.exe) na úrovni-metoda. Kolik je ovlivněn výkon se liší v závislosti na metodě.
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
Kroky pro reprodukci problému
-
Vytvoření aplikace C++, který je založen na rozhraní.NET Framework 3.5 SP1.
-
Přidejte do projektu soubor CPP, Bug.cpp soubor pojmenujte tento soubor a vložte následující kód v souboru Bug.cpp.
#using <mscorlib.dll>#include <stdlib.h>
class AcGeVector3d
{
double x, y, z;
public:
__forceinline AcGeVector3d(const AcGeVector3d& src): x(src.x),y(src.y),z(src.z)
{
}
__forceinline AcGeVector3d(double xx, double yy, double zz) : x(xx),y(yy),z(zz)
{
}
__forceinline AcGeVector3d operator / (double val) const
{
return AcGeVector3d (x/val, y/val, z/val);
}
};
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x)))
namespace Geometry
{
[System::Runtime::InteropServices::StructLayout(System::Runtime::InteropServices::LayoutKind::Sequential)]
public value class Vector3d
{
internal:
double m_x, m_y, m_z;
Vector3d(const AcGeVector3d* obj)
{
GETVECTOR3D(*this) = *obj;
}
public:
Vector3d(double x, double y, double z):m_x(x),m_y(y), m_z(z) {}
Vector3d DivideBy(double value)
{
return Vector3d(&GETVECTOR3D(*this).operator /(value));
}
virtual System::String^ ToString() override
{
return System::String::Format("{0}, {1}, {2}", m_x, m_y, m_z);
}
};
} -
Kompilace souboru Bug.cpp, spusťte následující příkaz:
cl/CLR /GL /O2 bug.cpp/Link/DLL /out:bug.dll
-
Vytvořte nový Microsoft Visual C# projekt jako projekt klienta.
-
Zadejte název souboru s kódem Test.cs souboru a vložte následující kód v souboru Test.cs.
using Geometry;namespace Test
{
class Tester
{
static void Main()
{
Vector3d v = new Vector3d(200, 200, 0);
v = v.DivideBy(150);
System.Console.WriteLine("{0}", v);
}
}
} -
Kompilace souboru Test.cs, spusťte následující příkaz:
CSC /r:bug.dll test.cs
-
Chcete-li vložit manifest do souboru Test.exe, spusťte následující příkaz:
mt.exe - nologo-manifest bug.dll.manifest-outputresource:test.exe;1
-
Spusťte soubor Test.exe.
Všimněte si, že skutečný výsledek je následující:
1.33333333333333, 1.333333333333, 0Očekávaný výsledek je však takto:
1.33333333333333, 0, 0
Odkazy
Pro 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