מאפייני הבעיה
במחשב המפעיל את Microsoft .NET Framework 3.5 ה-Service Pack 1 (SP1), הקומפיילר just-in-time (JIT) והן את מחולל תמונה מקורית (Ngen.exe) אשר משתמשים בקובץ Mscorjit.dll עשויה ליצור קוד שגוי. לכן, יישום מנוהל C++ של 32 סיביות עשוי להניב תוצאות שגויות.
בעיה זו מתרחשת כאשר מתקיימים התנאים הבאים:
-
מבנה או המחלקה בקוד המקור יש פחות מארבעה סוגים שיטתיות פניות אובייקט מנוהל.
-
השתמש ההוראה Cpblk או הוראה Initblk.
הערה בעיה זו אינה מתרחשת ביישום של 64 סיביות.
הגורם
בעיה זו מתרחשת עקב רגרסיה ב- SP1 3.5 של .NET Framework.
פתרון
מידע על תיקונים חמים
תיקון חם נתמך זמין מ-Microsoft. עם זאת, תיקון חם זה מיועד לפתור רק את הבעיה המתוארת במאמר זה. יש להחיל תיקון חם זה רק במערכות שהתעוררה בהן בעיה ספציפית זו. תיקון חם זה עשוי לעבור בדיקות נוספות. לכן, אם המערכת שברשותך לא נפגעה באופן חמור מבעיה זו, מומלץ להמתין לעדכון התוכנה הבא המכיל תיקון חם זה.
כדי להוריד את התיקון החם מתוך גלריית הקודים של MSDN, בקר באתר האינטרנט הבא של Microsoft:
http://code.msdn.microsoft.com/KB957542
הערה גלריית הקודים של MSDN מציג את השפות שעבורן התיקון החם זמין. אם אינך רואה את השפה שלך ברשימה, הדבר נובע הדף גלריית קוד משאב אינו זמין עבור שפה זו.
הערה אם בעיות נוספות מתרחשות או אם נדרש פתרון בעיות כלשהו, ייתכן שתצטרך ליצור בקשת שירות נפרדת. דמי התמיכה המקובלים יחולו על שאלות וסוגיות תמיכה נוספות אשר אינן מצריכות את התיקון חם הספציפי הזה. לקבלת רשימה מלאה של מספרי הטלפון של התמיכה ושירות הלקוחות של 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++ המבוסס על SP1 3.5 של .NET Framework.
-
הוספת קובץ .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, הפעל את הפקודה הבאה:
מש /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 Knowledge Base:
824684 תיאור המינוח הרגיל המשמש לתיאור עדכוני התוכנה של מיקרוסופט