Симптоми
На компютър, работещ под Microsoft .NET Framework 3.5 Service Pack 1 (SP1) току-що в работно време (JIT) компилатор и основен генератор изображение (Ngen.exe), които използват файла Mscorjit.dll може да генерира неправилен код. Следователно 32-битово приложение Managed C++ могат да доведат до неправилни резултати.
Този проблем възниква, ако са налице следните условия:
-
Строеж или клас код е по-малко от четири скаларни видове и препратки не управлявания обект.
-
Използвайте Cpblk инструкцията или Initblk инструкцията.
Забележка: Този проблем възниква в 64-битово приложение.
Причина
Този проблем възниква поради влошаване на .NET Framework 3.5 SP1.
Решение
Информация за актуалната корекция
Поддържана актуална корекция се предлага от Microsoft. Тази актуална корекция обаче е предназначена да коригира само проблема, описан в тази статия. Прилагайте тази корекция само към системи, изпитващи този конкретен проблем. Може да се проведат допълнителни тестове на тази актуална корекция. Следователно ако не сте силно засегнати от този проблем, препоръчваме да изчакате следващата актуализация на софтуера, който ще съдържа тази корекция.
За да изтеглите актуалната корекция от MSDN Code Gallery, посетете следния уеб сайт на Microsoft:
http://code.msdn.microsoft.com/KB957542
Забележка: MSDN Code Gallery показва езиците, за които е налична актуалната корекция. Ако не виждате вашия език, това е защото Code Gallery ресурс страница не е налична за този език.
Забележка: Ако възникнат допълнителни проблеми или проблеми, трябва да създадете отделна заявка за поддръжка. Обичайните такси за поддръжката ще важат за допълнителни въпроси и проблеми, които не спадат към конкретната актуална корекция. За пълен списък на телефонните номера на Microsoft за обслужване на клиенти и поддръжка или да създадете отделна заявка за поддръжка посетете следния уеб сайт на Microsoft:
http://support.microsoft.com/contactus/?ws=supportЗабележка: Ако имате 32-битово приложение работи на 64-битов, приложете актуалната корекция за 64-битова версия, за да разрешите този проблем.
Необходими условия:
Трябва да имате .NET Framework 3.5 SP1, за да приложите тази актуална корекция.
Изискване за рестартиране
Може да се наложи да рестартирате компютъра, ако някой от файловете, които се актуализират, се използват.
Информация за заместване на актуалната корекция
Тази актуална корекция не замества други спешни корекции.
Файлова информация
Англоезичната версия на тази спешна корекция има файлови атрибути (или по-нови файлови атрибути), които са изброени в следващата таблица. Датите и часовете за тези файлове са изброени в координирано световно време (UTC). Когато гледате информацията за файла, преобразувана в местно време. За да намерите разликата между UTC и местното време, използвайте раздела часова зона в елемента " Дата и час " в контролния панел.
Windows 2000, Windows XP и Windows Server 2003, x86 версии
Име на файл |
Версия на файла |
Размер на файла |
Дата |
Време |
---|---|---|---|---|
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 и Windows Server 2003, x64 версии
Име на файл |
Версия на файла |
Размер на файла |
Дата |
Време |
Платформа |
---|---|---|---|---|---|
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 и Windows Server 2003, IA-64 версии
Име на файл |
Версия на файла |
Размер на файла |
Дата |
Време |
Платформа |
---|---|---|---|---|---|
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) и Windows Server 2008, x86 версии
Име на файл |
Версия на файла |
Размер на файла |
Дата |
Време |
Платформа |
---|---|---|---|---|---|
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 |
Неприложимо |
66,728 |
18-Dec-2007 |
21:03 |
Неприложимо |
Bopomofo.nlp |
Неприложимо |
82,172 |
18-Dec-2007 |
21:03 |
Неприложимо |
Ksc.nlp |
Неприложимо |
116,756 |
18-Dec-2007 |
21:04 |
Неприложимо |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Неприложимо |
59,342 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfc.nlp |
Неприложимо |
45,794 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfd.nlp |
Неприложимо |
39,284 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfkc.nlp |
Неприложимо |
66,384 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfkd.nlp |
Неприложимо |
60,294 |
18-Dec-2007 |
21:05 |
Неприложимо |
Prc.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:05 |
Неприложимо |
Prcp.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:05 |
Неприложимо |
Sortkey.nlp |
Неприложимо |
262,148 |
18-Dec-2007 |
21:05 |
Неприложимо |
Sorttbls.nlp |
Неприложимо |
20,320 |
18-Dec-2007 |
21:05 |
Неприложимо |
Xjis.nlp |
Неприложимо |
28,288 |
18-Dec-2007 |
21:05 |
Неприложимо |
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 и Windows Server 2008, x64 версии
Име на файл |
Версия на файла |
Размер на файла |
Дата |
Време |
Платформа |
---|---|---|---|---|---|
Big5.nlp |
Неприложимо |
66,728 |
18-Dec-2007 |
21:01 |
Неприложимо |
Bopomofo.nlp |
Неприложимо |
82,172 |
18-Dec-2007 |
21:01 |
Неприложимо |
Ksc.nlp |
Неприложимо |
116,756 |
18-Dec-2007 |
21:02 |
Неприложимо |
Mscorlib.dll |
2.0.50727.3068 |
4,562,944 |
01-Oct-2008 |
22:25 |
x64 |
Normidna.nlp |
Неприложимо |
59,342 |
18-Dec-2007 |
21:03 |
Неприложимо |
Normnfc.nlp |
Неприложимо |
45,794 |
18-Dec-2007 |
21:03 |
Неприложимо |
Normnfd.nlp |
Неприложимо |
39,284 |
18-Dec-2007 |
21:03 |
Неприложимо |
Normnfkc.nlp |
Неприложимо |
66,384 |
18-Dec-2007 |
21:03 |
Неприложимо |
Normnfkd.nlp |
Неприложимо |
60,294 |
18-Dec-2007 |
21:03 |
Неприложимо |
Prc.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:03 |
Неприложимо |
Prcp.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:03 |
Неприложимо |
Sortkey.nlp |
Неприложимо |
262,148 |
18-Dec-2007 |
21:03 |
Неприложимо |
Sorttbls.nlp |
Неприложимо |
20,320 |
18-Dec-2007 |
21:03 |
Неприложимо |
Xjis.nlp |
Неприложимо |
28,288 |
18-Dec-2007 |
21:03 |
Неприложимо |
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 |
Неприложимо |
66,728 |
18-Dec-2007 |
21:03 |
Неприложимо |
Bopomofo.nlp |
Неприложимо |
82,172 |
18-Dec-2007 |
21:03 |
Неприложимо |
Ksc.nlp |
Неприложимо |
116,756 |
18-Dec-2007 |
21:04 |
Неприложимо |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Неприложимо |
59,342 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfc.nlp |
Неприложимо |
45,794 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfd.nlp |
Неприложимо |
39,284 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfkc.nlp |
Неприложимо |
66,384 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfkd.nlp |
Неприложимо |
60,294 |
18-Dec-2007 |
21:05 |
Неприложимо |
Prc.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:05 |
Неприложимо |
Prcp.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:05 |
Неприложимо |
Sortkey.nlp |
Неприложимо |
262,148 |
18-Dec-2007 |
21:05 |
Неприложимо |
Sorttbls.nlp |
Неприложимо |
20,320 |
18-Dec-2007 |
21:05 |
Неприложимо |
Xjis.nlp |
Неприложимо |
28,288 |
18-Dec-2007 |
21:05 |
Неприложимо |
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 и Windows Server 2008, IA-64 версии
Име на файл |
Версия на файла |
Размер на файла |
Дата |
Време |
Платформа |
---|---|---|---|---|---|
Big5.nlp |
Неприложимо |
66,728 |
18-Dec-2007 |
21:06 |
Неприложимо |
Bopomofo.nlp |
Неприложимо |
82,172 |
18-Dec-2007 |
21:06 |
Неприложимо |
Ksc.nlp |
Неприложимо |
116,756 |
18-Dec-2007 |
21:06 |
Неприложимо |
Mscorlib.dll |
2.0.50727.3068 |
4,005,888 |
01-Oct-2008 |
22:26 |
IA-64 |
Normidna.nlp |
Неприложимо |
59,342 |
18-Dec-2007 |
21:08 |
Неприложимо |
Normnfc.nlp |
Неприложимо |
45,794 |
18-Dec-2007 |
21:08 |
Неприложимо |
Normnfd.nlp |
Неприложимо |
39,284 |
18-Dec-2007 |
21:08 |
Неприложимо |
Normnfkc.nlp |
Неприложимо |
66,384 |
18-Dec-2007 |
21:08 |
Неприложимо |
Normnfkd.nlp |
Неприложимо |
60,294 |
18-Dec-2007 |
21:08 |
Неприложимо |
Prc.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:08 |
Неприложимо |
Prcp.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:08 |
Неприложимо |
Sortkey.nlp |
Неприложимо |
262,148 |
18-Dec-2007 |
21:08 |
Неприложимо |
Sorttbls.nlp |
Неприложимо |
20,320 |
18-Dec-2007 |
21:08 |
Неприложимо |
Xjis.nlp |
Неприложимо |
28,288 |
18-Dec-2007 |
21:08 |
Неприложимо |
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 |
Неприложимо |
66,728 |
18-Dec-2007 |
21:03 |
Неприложимо |
Bopomofo.nlp |
Неприложимо |
82,172 |
18-Dec-2007 |
21:03 |
Неприложимо |
Ksc.nlp |
Неприложимо |
116,756 |
18-Dec-2007 |
21:04 |
Неприложимо |
Mscorlib.dll |
2.0.50727.3068 |
4,546,560 |
01-Oct-2008 |
22:27 |
x86 |
Normidna.nlp |
Неприложимо |
59,342 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfc.nlp |
Неприложимо |
45,794 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfd.nlp |
Неприложимо |
39,284 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfkc.nlp |
Неприложимо |
66,384 |
18-Dec-2007 |
21:05 |
Неприложимо |
Normnfkd.nlp |
Неприложимо |
60,294 |
18-Dec-2007 |
21:05 |
Неприложимо |
Prc.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:05 |
Неприложимо |
Prcp.nlp |
Неприложимо |
83,748 |
18-Dec-2007 |
21:05 |
Неприложимо |
Sortkey.nlp |
Неприложимо |
262,148 |
18-Dec-2007 |
21:05 |
Неприложимо |
Sorttbls.nlp |
Неприложимо |
20,320 |
18-Dec-2007 |
21:05 |
Неприложимо |
Xjis.nlp |
Неприложимо |
28,288 |
18-Dec-2007 |
21:05 |
Неприложимо |
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 |
Заобикаляне на проблема
За да заобиколите този проблем, използвайте един от следните методи.
Метод 1
Ако кодът на приложението подобно примерен код в раздела "Допълнителна информация", намерете следния ред на кода.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
Промяна на този вид код, както следва.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))
Метод 2
Разполагане на .ini файл. За да направите това, създайте файл, който съдържа следния код.
[.NET Framework Debugging Control]AllowOptimize=0
Име на .ini файл същото като проблемни модул, но използва разширение .ini вместо .dll. Например примерен код в раздела "Допълнителна информация", името на файла .ini файл Bug.ini. Поставете файла Bug.ini в директорията Bug.dll файла.
Забележка: Недостатък на този метод е потенциален изпълнение ефект за не оптимизации. Ако използвате основните генератор изображение (Ngen.exe) за precompile модул, този метод не е приложим.
Метод 3
Избирателно спрямо NoOptimization опцията на MethodImplOptions изброяване проблемни методи с помощта на класа MethodImplAttribute .
Забележка: Този метод се деактивират оптимизации за JIT компилация и основните изображение генератор (Ngen.exe) на всеки метод ниво. Колко са засегнати се различава в зависимост от метода.
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".
Допълнителна информация
Стъпки за възпроизвеждане на проблема
-
Създаване на приложение на C++, която се базира на .NET Framework 3.5 SP1.
-
Добавете .cpp файл на проекта, името на файла Bug.cpp файла и след това поставете следния код в 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);
}
};
} -
За съставяне на файла Bug.cpp, изпълнете следната команда:
CL /clr /GL /O2 bug.cpp /link /dll /out:bug.dll
-
Създаване на нов Microsoft Visual C# проект за проекта на клиента.
-
Име на кода на файла Test.cs файла и след това поставете следния код в 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);
}
}
} -
За съставяне на файла Test.cs, изпълнете следната команда:
CSC /r:bug.dll test.cs
-
Да вградите манифест файла Test.exe, изпълнете следната команда:
MT.exe - връзки с инвеститорите;-явно bug.dll.manifest-outputresource:test.exe;1
-
Стартирайте файла Test.exe.
Обърнете внимание, че действителният резултат е както следва:
1.33333333333333, 1.333333333333, 0Очакван резултат обаче е както следва:
1.33333333333333, 0, 0
Препратки
За повече информация относно терминологията за актуализация на софтуера щракнете върху следния номер на статия, за да я видите в базата данни на Microsoft:
824684 описание на стандартната терминология, използвана за описание на софтуерните актуализации на Microsoft