Symptom
Just-in-time (JIT)-kompilator och Native Image Generator (Ngen.exe) som använder Mscorjit.dll kan ge felaktig kod på en dator som kör Microsoft.NET Framework 3.5 servicepack 1 (SP1). Därför kan ett 32-bitars hanterad C++-program ge felaktiga resultat.
Det här problemet uppstår om följande villkor är uppfyllda:-
Strukturen eller klassen i källkoden har mindre än fyra skalära sorter och inga objektreferenser för hanterade.
-
Du använder instruktionen cpblk saknas eller Initblk instruktion.
Obs! Det här problemet uppstår inte i en 64-bitars program.
Orsak
Det här problemet beror på en återgång i.NET Framework 3.5 SP1.
Lösning
Information om snabbkorrigeringen
En snabbkorrigering är tillgänglig från Microsoft. Den här snabbkorrigeringen är emellertid avsedd att åtgärda det problem som beskrivs i denna artikel. Använd bara den här snabbkorrigeringen för system med just detta problem. Snabbkorrigeringen kan komma att testas igen. Om du inte störs alltför mycket av detta problem rekommenderar vi att du väntar på nästa programuppdatering som innehåller den här snabbkorrigeringen.
Om du vill hämta snabbkorrigeringen från galleriet MSDN-kod finns på följande Microsoft-webbplats:http://code.msdn.microsoft.com/KB957542 Obs! Galleri för MSDN-kod visar de språk som snabbkorrigeringen är tillgänglig. Om du inte ser ditt språk i listan beror det på att koden Gallery resurssidan inte är tillgänglig för språket. Obs! Om det uppstår ytterligare problem eller krävs felsökning, kan du behöva skapa en serviceförfrågan. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte uppfyller kraven för den här snabbkorrigeringen. En fullständig lista över telefonnummer för Microsofts kundtjänst och Support eller skapa en serviceförfrågan finns på följande Microsoft-webbplats:
http://support.microsoft.com/contactus/?ws=supportObs! Om du har en 32-bitars program som körs på en 64-bitars plattform kan installera snabbkorrigeringen för 64-bitarsversionen som löser problemet.
Förutsättningar
Du måste ha installerat den här snabbkorrigeringen.NET Framework 3.5 SP1.
Krav på omstart
Du kan behöva starta om datorn om någon av filerna som uppdateras 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. Använd fliken tidszon i datum och tid på Kontrollpanelen om du vill se skillnaden mellan UTC-tid och lokal tid.
Windows 2000, Windows XP och Windows Server 2003, x86 versioner
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
---|---|---|---|---|
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 |
Windows 2000, Windows XP och Windows Server 2003, x64 versioner
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
---|---|---|---|---|---|
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 |
Windows 2000, Windows XP och Windows Server 2003 IA-64-versioner
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
---|---|---|---|---|---|
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) och Windows Server 2008, x86 versioner
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
---|---|---|---|---|---|
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 |
Ej tillämplig |
66,728 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Bopomofo.nlp |
Ej tillämplig |
82,172 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Ksc.nlp |
Ej tillämplig |
116,756 |
18-Dec-2007 |
21:04 |
Ej tillämplig |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Ej tillämplig |
59,342 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfc.nlp |
Ej tillämplig |
45,794 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfd.nlp |
Ej tillämplig |
39,284 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfkc.nlp |
Ej tillämplig |
66,384 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfkd.nlp |
Ej tillämplig |
60,294 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Prc.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Prcp.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Sortkey.nlp |
Ej tillämplig |
262,148 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Sorttbls.nlp |
Ej tillämplig |
20,320 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Xjis.nlp |
Ej tillämplig |
28,288 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
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 |
Windows Vista SP1 och Windows Server 2008, x64 versioner
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
---|---|---|---|---|---|
Big5.nlp |
Ej tillämplig |
66,728 |
18-Dec-2007 |
21:01 |
Ej tillämplig |
Bopomofo.nlp |
Ej tillämplig |
82,172 |
18-Dec-2007 |
21:01 |
Ej tillämplig |
Ksc.nlp |
Ej tillämplig |
116,756 |
18-Dec-2007 |
21:02 |
Ej tillämplig |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
01-Oct-2008 |
22:25 |
x64 |
Normidna.nlp |
Ej tillämplig |
59,342 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Normnfc.nlp |
Ej tillämplig |
45,794 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Normnfd.nlp |
Ej tillämplig |
39,284 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Normnfkc.nlp |
Ej tillämplig |
66,384 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Normnfkd.nlp |
Ej tillämplig |
60,294 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Prc.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Prcp.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Sortkey.nlp |
Ej tillämplig |
262,148 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Sorttbls.nlp |
Ej tillämplig |
20,320 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Xjis.nlp |
Ej tillämplig |
28,288 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
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 |
Ej tillämplig |
66,728 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Bopomofo.nlp |
Ej tillämplig |
82,172 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Ksc.nlp |
Ej tillämplig |
116,756 |
18-Dec-2007 |
21:04 |
Ej tillämplig |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Ej tillämplig |
59,342 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfc.nlp |
Ej tillämplig |
45,794 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfd.nlp |
Ej tillämplig |
39,284 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfkc.nlp |
Ej tillämplig |
66,384 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfkd.nlp |
Ej tillämplig |
60,294 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Prc.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Prcp.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Sortkey.nlp |
Ej tillämplig |
262,148 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Sorttbls.nlp |
Ej tillämplig |
20,320 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Xjis.nlp |
Ej tillämplig |
28,288 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
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 |
Windows Vista SP1 och Windows Server 2008 IA-64-versioner
Filnamn |
Filversion |
Storlek |
Datum |
Tid |
Plattform |
---|---|---|---|---|---|
Big5.nlp |
Ej tillämplig |
66,728 |
18-Dec-2007 |
21:06 |
Ej tillämplig |
Bopomofo.nlp |
Ej tillämplig |
82,172 |
18-Dec-2007 |
21:06 |
Ej tillämplig |
Ksc.nlp |
Ej tillämplig |
116,756 |
18-Dec-2007 |
21:06 |
Ej tillämplig |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
01-Oct-2008 |
22:26 |
IA-64 |
Normidna.nlp |
Ej tillämplig |
59,342 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
Normnfc.nlp |
Ej tillämplig |
45,794 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
Normnfd.nlp |
Ej tillämplig |
39,284 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
Normnfkc.nlp |
Ej tillämplig |
66,384 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
Normnfkd.nlp |
Ej tillämplig |
60,294 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
Prc.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
Prcp.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
Sortkey.nlp |
Ej tillämplig |
262,148 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
Sorttbls.nlp |
Ej tillämplig |
20,320 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
Xjis.nlp |
Ej tillämplig |
28,288 |
18-Dec-2007 |
21:08 |
Ej tillämplig |
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 |
Ej tillämplig |
66,728 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Bopomofo.nlp |
Ej tillämplig |
82,172 |
18-Dec-2007 |
21:03 |
Ej tillämplig |
Ksc.nlp |
Ej tillämplig |
116,756 |
18-Dec-2007 |
21:04 |
Ej tillämplig |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Ej tillämplig |
59,342 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfc.nlp |
Ej tillämplig |
45,794 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfd.nlp |
Ej tillämplig |
39,284 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfkc.nlp |
Ej tillämplig |
66,384 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Normnfkd.nlp |
Ej tillämplig |
60,294 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Prc.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Prcp.nlp |
Ej tillämplig |
83,748 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Sortkey.nlp |
Ej tillämplig |
262,148 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Sorttbls.nlp |
Ej tillämplig |
20,320 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
Xjis.nlp |
Ej tillämplig |
28,288 |
18-Dec-2007 |
21:05 |
Ej tillämplig |
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 |
Temporär lösning
Undvik det här problemet genom att använda någon av följande metoder.
Metod 1
Om programkoden liknar exempelkoden i avsnittet "Mer Information" kan du hitta följande kodrad.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
Ändra den här kodraden på följande sätt.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))
Metod 2
Distribuera en INI-fil. Gör detta genom att skapa en fil som innehåller följande kod.
[.NET Framework Debugging Control]AllowOptimize=0
Namn ini-filen lika problematiska modulen men har filnamnstillägget .ini-i stället för filnamnstillägget .dll. Till exempel för exempelkoden i avsnittet "Mer Information" är filnamnet ini-filen Bug.ini. Placera Bug.ini-filen i samma katalog som filen Bug.dll.
Obs! Nackdelen med denna metod är den potentiella effekten prestanda för några optimeringar. Den här metoden är inte tillämplig om du använder Native Image Generator (Ngen.exe) för att förkompilera modulen.Metod 3
Selektivt tillämpa alternativet NoOptimization i MethodImplOptions -uppräkningen problematiska metoder med hjälp av klassen MethodImplAttribute .
Obs! Den här metoden inaktiveras optimeringar för JIT-kompilator och Image inbyggd Generator (Ngen.exe) på en per-metod. Hur mycket prestanda påverkas varierar, beroende på metoden.Status
Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".
Mer Information
Åtgärder för att återskapa problemet
-
Skapa ett C++-program som bygger på.NET Framework 3.5 SP1.
-
Lägga till en .cpp-fil i projektet filen namnet Bug.cpp-fil och sedan klistra in följande kod i filen 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); } }; } -
Om du vill kompilera Bug.cpp-filen kör du följande kommando:
CL /clr /GL /O2 bug.cpp /link/dll /out:bug.dll
-
Skapa ett nytt Microsoft Visual C#-projekt som ska användas som klientprojektet.
-
Filnamnet kod filen Test.cs och sedan klistra in följande kod i filen 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); } } } -
Om du vill kompilera Test.cs-filen kör du följande kommando:
CSC /r:bug.dll test.cs
-
Om du vill bädda in manifestet i Test.exe-fil, kör du följande kommando:
MT.exe - nologo-manifest bug.dll.manifest-outputresource:test.exe;1
-
Kör filen Test.exe.
Observera att det faktiska resultatet är som följer:
1.33333333333333, 1.333333333333, 0Dock är det förväntade resultatet på följande sätt:
1.33333333333333, 0, 0
Referenser
För mer information om terminologin för programuppdateringar klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:
824684 beskrivning av standardterminologin som används för att beskriva Microsoft-programuppdateringar