Причини
На комп'ютері під керуванням Microsoft .NET Framework 3.5 пакет оновлень 1 (SP1) з просто час JIT-компілятор та до засобу створення власних образів (Ngen.exe), можуть використовувати Mscorjit.dll може видати неправильний код. Таким чином, C++, керовані 32-розрядного застосунку може призвести до неправильні результати.
Ця проблема виникає в таких умов:
-
До структури або клас у вихідному коді має менше, ніж чотири скалярного різновиди і немає посилання на керовані об'єкта.
-
Ви використовуєте, інструкція Cpblk або Initblk інструкції.
Примітка. Ця проблема не виникає в застосунку в 64-розрядна.
Причина
Ця проблема виникає, тому регресії в полі .NET Framework 3.5 SP1.
Вирішення
Відомості про виправлення
Виправлення доступне від корпорації Майкрософт. Проте, це виправлення призначене тільки для вирішення проблеми, описаної в цій статті. Застосовуйте це виправлення лише до систем, які зазнають цієї конкретної проблеми. Це виправлення може отримати додаткове тестування. Тому, якщо ця проблема не сильно впливає на вас, ми рекомендуємо почекати наступного оновлення програмного забезпечення, що містить це виправлення.
Щоб завантажити це виправлення MSDN Code Gallery, перейдіть на веб-сайт корпорації Майкрософт:
http://code.msdn.microsoft.com/KB957542
Примітка. MSDN Code Gallery, відображається список мов, для яких це виправлення доступне. Якщо ви не бачите мову у списку, це тому, що сторінка ресурсів для Code Gallery недоступна для цієї мови.
Примітка. Якщо виникають додаткові проблеми, або потрібно виявлення проблем, можливо, доведеться створити окремий запит на обслуговування. Звичайні кошти на технічну підтримку будуть застосовуватися для додаткових питань і проблем, які не пов'язані з цим виправленням. Повний список телефонів служби підтримки користувачів і технічної підтримки, або створити окремий запит на обслуговування відвідайте веб-сайт корпорації Майкрософт:
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 |
Пакет оновлень 1 (SP1) для Windows Vista і 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.
Примітка. За мінусом цього способу є, потенційні ефект не оптимізації продуктивності. Якщо використовується для precompile модуля до засобу створення власних образів (Ngen.exe), цей спосіб не застосовується.
Спосіб 3
Вибірково застосовувати NoOptimization варіант MethodImplOptions перелічення методи, що спричиняє проблему, за допомогою MethodImplAttribute класу.
Примітка. Цей спосіб, вимикає JIT-компілятору і до засобу створення власних образів (Ngen.exe) на рівні окремих спосіб оптимізації. Як впливає на продуктивність залежить від методу.
Стан
Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".
Додаткові відомості
Як відтворити проблему
-
Створення застосунків 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 - nologo-маніфесту bug.dll.manifest-outputresource:test.exe;1
-
Запустити файл Test.exe.
Зверніть увагу, що фактичний результат наступним чином:
1.33333333333333, 1.333333333333, 0Проте очікуваним результатом буде таким:
1.33333333333333, 0, 0
Посилання
Щоб отримати додаткові відомості про термінологію оновлення програмного забезпечення, клацніть цей номер статті в базі знань Microsoft:
824684 Опис стандартну термінологію, яка використовується для опису оновлень програмних продуктів Майкрософт