Objawy
Na komputerze, na którym jest uruchomiony program Microsoft.NET Framework 3.5 z dodatkiem Service Pack 1 (SP1) kompilator just-in-time (JIT) i Native Image Generator (Ngen.exe) korzystających z pliku Mscorjit.dll może generować niepoprawny kod. W związku z tym 32-bitowej aplikacji Managed C++ może powodować nieprawidłowe wyniki.
Ten problem występuje, jeśli są spełnione następujące warunki:
-
Pole struktury lub klasy w kodzie źródłowym jest mniej niż cztery odmian skalarnych i nie odwołania do obiektów zarządzanych.
-
Za pomocą instrukcji Initblk lub instrukcji Cpblk.
Uwaga Ten problem nie występuje w aplikacji 64-bitowych.
Przyczyna
Ten problem występuje z powodu regresji,.NET Framework 3.5 z dodatkiem SP1.
Rozwiązanie
Informacje o poprawce
Obsługiwana poprawka jest udostępniana przez firmę Microsoft. Jednak ta poprawka jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Tylko w systemach, których dotyczy ten problem, należy zastosować tę poprawkę. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następną aktualizację oprogramowania zawierającą tę poprawkę.
Aby pobrać tę poprawkę z galerii kodów MSDN, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://code.msdn.microsoft.com/KB957542
Uwaga Galerii kodów MSDN zawiera listę języków, dla których dostępna jest poprawka. Jeśli na liście język nie jest widoczny, to dlatego stronie resource galerię kodu nie jest dostępna dla danego języka.
Uwaga Jeśli wystąpią dodatkowe błędy lub konieczność rozwiązania problemu, być może trzeba będzie utworzyć osobne zlecenie usługi. Zwykłe koszty obsługi będą zastosowane do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej poprawki. Aby uzyskać pełną listę numerów telefonów pomocy technicznej i obsługi klienta firmy Microsoft lub utworzyć osobne zlecenie usługi, odwiedź następującą witrynę firmy Microsoft w sieci Web:
http://support.microsoft.com/contactus/?ws=supportUwaga Jeśli masz aplikacji 32-bitowych, która działa na platformie 64-bitowej, należy zastosować poprawkę dla wersji 64-bitowej rozwiązać ten problem.
Wymagania wstępne
Musi mieć.NET Framework 3.5 SP1, aby zastosować tę poprawkę.
Wymagania dotyczące ponownego uruchomienia
Należy ponownie uruchomić komputer, jeśli dowolny z plików, które są aktualizowane są używane.
Informacje dotyczące zastępowania poprawek
Ta poprawka nie zastępuje żadnych innych poprawek.
Informacje o plikach
Wersja anglojęzyczna tej poprawki ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć z karty Strefa czasowa w aplecie Data i godzina w Panelu sterowania.
System Windows 2000, Windows XP i Windows Server 2003, x86 wersje
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
---|---|---|---|---|
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 |
System Windows 2000, Windows XP i Windows Server 2003, x64 wersje
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
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 |
System Windows 2000, Windows XP i Windows Server 2003, wersje IA-64
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
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 |
Dodatek Service Pack 1 (SP1) dla systemu Windows Vista i Windows Server 2008, x86 wersje
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
Platforma |
---|---|---|---|---|---|
Mscorlib.resources.dll |
2.0.50727.3053 |
352256 |
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 |
315392 |
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 |
311296 |
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 |
315392 |
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 |
319488 |
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 |
311296 |
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 |
Nie dotyczy |
66,728 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Bopomofo.nlp |
Nie dotyczy |
82,172 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Ksc.nlp |
Nie dotyczy |
116,756 |
18-Dec-2007 |
21:04 |
Nie dotyczy |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Nie dotyczy |
59,342 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfc.nlp |
Nie dotyczy |
45,794 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfd.nlp |
Nie dotyczy |
39,284 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfkc.nlp |
Nie dotyczy |
66,384 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfkd.nlp |
Nie dotyczy |
60,294 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Prc.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Prcp.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Sortkey.nlp |
Nie dotyczy |
262,148 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Sorttbls.nlp |
Nie dotyczy |
20,320 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Xjis.nlp |
Nie dotyczy |
28,288 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
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 |
Dodatek SP1 dla systemu Windows Vista i Windows Server 2008, x64 wersje
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
Platforma |
---|---|---|---|---|---|
Big5.nlp |
Nie dotyczy |
66,728 |
18-Dec-2007 |
21:01 |
Nie dotyczy |
Bopomofo.nlp |
Nie dotyczy |
82,172 |
18-Dec-2007 |
21:01 |
Nie dotyczy |
Ksc.nlp |
Nie dotyczy |
116,756 |
18-Dec-2007 |
21:02 |
Nie dotyczy |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
01-Oct-2008 |
22:25 |
x64 |
Normidna.nlp |
Nie dotyczy |
59,342 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Normnfc.nlp |
Nie dotyczy |
45,794 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Normnfd.nlp |
Nie dotyczy |
39,284 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Normnfkc.nlp |
Nie dotyczy |
66,384 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Normnfkd.nlp |
Nie dotyczy |
60,294 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Prc.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Prcp.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Sortkey.nlp |
Nie dotyczy |
262,148 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Sorttbls.nlp |
Nie dotyczy |
20,320 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Xjis.nlp |
Nie dotyczy |
28,288 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
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 |
352256 |
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 |
315392 |
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 |
311296 |
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 |
315392 |
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 |
319488 |
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 |
311296 |
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 |
Nie dotyczy |
66,728 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Bopomofo.nlp |
Nie dotyczy |
82,172 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Ksc.nlp |
Nie dotyczy |
116,756 |
18-Dec-2007 |
21:04 |
Nie dotyczy |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Nie dotyczy |
59,342 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfc.nlp |
Nie dotyczy |
45,794 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfd.nlp |
Nie dotyczy |
39,284 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfkc.nlp |
Nie dotyczy |
66,384 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfkd.nlp |
Nie dotyczy |
60,294 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Prc.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Prcp.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Sortkey.nlp |
Nie dotyczy |
262,148 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Sorttbls.nlp |
Nie dotyczy |
20,320 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Xjis.nlp |
Nie dotyczy |
28,288 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
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 |
Dodatek SP1 dla systemu Windows Vista i Windows Server 2008, wersje IA-64
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
Platforma |
---|---|---|---|---|---|
Big5.nlp |
Nie dotyczy |
66,728 |
18-Dec-2007 |
21:06 |
Nie dotyczy |
Bopomofo.nlp |
Nie dotyczy |
82,172 |
18-Dec-2007 |
21:06 |
Nie dotyczy |
Ksc.nlp |
Nie dotyczy |
116,756 |
18-Dec-2007 |
21:06 |
Nie dotyczy |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
01-Oct-2008 |
22:26 |
IA-64 |
Normidna.nlp |
Nie dotyczy |
59,342 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
Normnfc.nlp |
Nie dotyczy |
45,794 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
Normnfd.nlp |
Nie dotyczy |
39,284 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
Normnfkc.nlp |
Nie dotyczy |
66,384 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
Normnfkd.nlp |
Nie dotyczy |
60,294 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
Prc.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
Prcp.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
Sortkey.nlp |
Nie dotyczy |
262,148 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
Sorttbls.nlp |
Nie dotyczy |
20,320 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
Xjis.nlp |
Nie dotyczy |
28,288 |
18-Dec-2007 |
21:08 |
Nie dotyczy |
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 |
315392 |
27-Jul-2008 |
17:58 |
x86 |
Mscorlib.resources.dll |
2.0.50727.3053 |
311296 |
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 |
319488 |
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 |
Nie dotyczy |
66,728 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Bopomofo.nlp |
Nie dotyczy |
82,172 |
18-Dec-2007 |
21:03 |
Nie dotyczy |
Ksc.nlp |
Nie dotyczy |
116,756 |
18-Dec-2007 |
21:04 |
Nie dotyczy |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Nie dotyczy |
59,342 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfc.nlp |
Nie dotyczy |
45,794 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfd.nlp |
Nie dotyczy |
39,284 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfkc.nlp |
Nie dotyczy |
66,384 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Normnfkd.nlp |
Nie dotyczy |
60,294 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Prc.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Prcp.nlp |
Nie dotyczy |
83,748 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Sortkey.nlp |
Nie dotyczy |
262,148 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Sorttbls.nlp |
Nie dotyczy |
20,320 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
Xjis.nlp |
Nie dotyczy |
28,288 |
18-Dec-2007 |
21:05 |
Nie dotyczy |
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 |
Obejście problemu
Aby obejść ten problem, użyj jednej z następujących metod.
Metoda 1
Jeśli kod aplikacji przypomina przykładowy kod w sekcji "Więcej informacji", zlokalizuj następujący wiersz kodu.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
Zmień ten wiersz kodu w następujący sposób.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))
Metoda 2
Wdrażanie pliku .ini. W tym celu należy utworzyć plik zawierający następujący kod.
[.NET Framework Debugging Control]AllowOptimize=0
Nazwa pliku .ini, taka sama, jak moduł problematyczne, ale należy użyć rozszerzenia ini zamiast rozszerzenie .dll. Na przykład przykładowy kod w sekcji "Więcej informacji", nazwę pliku .ini plik Bug.ini. Umieść plik Bug.ini w tym samym katalogu co plik Bug.dll.
Uwaga Wadą tej metody jest potencjalny wpływ na wydajność dla nie optymalizacje. Jeśli używasz Native Image Generator (Ngen.exe) wstępnej kompilacji modułu, ta metoda nie jest stosowane.
Metoda 3
Selektywnie zastosować opcję NoOptimization MethodImplOptions wyliczenie problematyczne metody za pomocą klasy MethodImplAttribute .
Uwaga Ta metoda umożliwia wyłączenie optymalizacje kompilatora JIT i Native Image Generator (Ngen.exe) na poziomie-metoda. Jaki jest wpływ na wydajność zależy od metody.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.
Więcej informacji
Kroki prowadzące do odtworzenia problemu
-
Tworzenie aplikacji C++, który jest oparty na.NET Framework 3.5 z dodatkiem SP1.
-
Dodaj plik CPP do projektu, temu plikowi nazwę pliku Bug.cpp, a następnie wklej następujący kod w pliku 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);
}
};
} -
Aby skompilować plik Bug.cpp, uruchom następujące polecenie:
Cl/CLR/GL/O2 bug.cpp/Link/dll /out:bug.dll
-
Utwórz nowy projekt języka Microsoft Visual C# do użycia jako projektu klienta.
-
Nazwa pliku kodu z pliku Test.cs, a następnie wklej następujący kod w pliku 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);
}
}
} -
Aby skompilować plik Test.cs, uruchom następujące polecenie:
CSC, test.cs /r:bug.dll
-
Aby osadzić manifest w pliku Test.exe, uruchom następujące polecenie:
MT.exe - nologo-manifest bug.dll.manifest-outputresource:test.exe;1
-
Uruchom plik Test.exe.
Należy zauważyć, że rzeczywisty wynik jest następujący:
1.33333333333333, 1.333333333333, 0Oczekiwany wynik jest jednak w następujący sposób:
1.33333333333333, 0, 0
Powiązane artykuły
Aby uzyskać więcej informacji dotyczących terminologii aktualizacji oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft