תיקון: כאשר אתה מפעיל יישום שנבנה על-ידי שימוש באפשרות מהדר /Ot ב- Microsoft Visual Studio 2005 Service Pack 1 (SP1), משפטי "אם" מסוימים עשויים לפעול בצורה שגויה


מאפייני הבעיה


שימוש באפשרות מהדר /Ot (מועדפת מהירה קוד) בעת בניית יישום שתצורתו נקבעה על x64 פלטפורמה ב- Microsoft Visual Studio 2005 Service Pack 1 (SP1). כאשר אתה מפעיל את היישום, משפטים מסוימים אם עשויים לפעול בצורה שגויה. לכן, התוצאות בלתי צפויות. לדוגמה, ייתכן ההצהרות אם דילוג בקוד שנוצר של היישום.

בעיה זו מתרחשת רק בתרחיש הבא.
  • קיימים מספר הנחיות נע בין שתי פעולות השוואה.
  • אלה השווה השתמש בפעולות האופרנדים זהה.
  • הערכים של האופרנדים משתנים לפי ההוראות MOV.
בתרחיש זה, ייתכן יש לדלג על ההצהרות אם בפעולת compare השני.

הערות
  • בעיה זו עלולה להתרחש גם כאשר אתה משתמש את /O2 או האפשרות /Ox כדי לבנות את היישום.
  • בעיה זו אינה מתרחשת x86 פלטפורמה.

הגורם


בעיה זו מתרחשת מאחר ממטב מהדר מניחה באופן שגוי מדגל שמוגדר על-ידי פעולת XOR יכול לשמש מבלי לכלול פעולת השוואה.

פתרון


מידע על תיקונים חמים

תיקון חם נתמך זמין מ-Microsoft. עם זאת, תיקון חם זה מיועד לפתור רק את הבעיה המתוארת במאמר זה. יש להחיל תיקון חם זה רק במערכות שהתעוררה בהן הבעיה המתוארת במאמר זה. תיקון חם זה עשוי לעבור בדיקות נוספות. לכן, אם המערכת שברשותך לא נפגעה באופן חמור מבעיה זו, מומלץ להמתין לעדכון התוכנה הבא המכיל תיקון חם זה.

אם התיקון החם זמין להורדה, ישנו סעיף "הורדת תיקון חם זמינה" בראש מאמר Knowledge Base. אם מקטע זה אינו מופיע, פנה לשירות הלקוחות והתמיכה של Microsoft כדי לקבל את התיקון החם.

הערה אם בעיות נוספות מתרחשות או אם נדרש פתרון בעיות כלשהו, ייתכן שתצטרך ליצור בקשת שירות נפרדת. דמי התמיכה המקובלים יחולו על שאלות וסוגיות תמיכה נוספות אשר אינן מצריכות את התיקון חם הספציפי הזה. לקבלת רשימה מלאה של מספרי הטלפון של התמיכה ושירות הלקוחות של Microsoft או כדי ליצור בקשת שירות נפרדת, בקר באתר האינטרנט הבא של Microsoft:הערה הטופס "הורדת תיקון חם זמינה" מציג את השפות שעבורן התיקון החם זמין. אם אינך רואה את השפה שלך, הסיבה לכך היא שהתיקון חם אינו זמין עבור שפה זו.

דרישות מוקדמות

יש לך את Visual Studio 2005 SP 1 מותקן כדי להחיל תיקון חם זה.

דרישת הפעלה מחדש

אתה לא צריך להפעיל מחדש את המחשב לאחר החלת תיקון חם זה.

מידע על החלפת התיקון החם

תיקון חם זה אינו מחליף תיקונים חמים אחרים.

פרטי קובץ

הגירסה האנגלית של תיקון חם זה כוללת את תכונות הקובץ (או תכונות קובץ מתקדמות יותר) המפורטות בטבלה הבאה. התאריכים והשעות המתייחסים לקבצים הללו רשומים לפי זמן אוניברסלי מתואם (UTC). כשמציגים את פרטי הקובץ, היא מומרת לזמן המקומי. כדי לברר את הפרש השעות בין זמן UTC לזמן המקומי, השתמש בכרטיסייה אזור זמן בפריט ' תאריך ושעה ' בלוח הבקרה.
שם קובץגירסת קובץגודל קובץתאריךשעהפלטפורמה
C2.dll14.0.50727.30802,273,28019 בנובמבר 200818:52x86
C2.dll14.0.50727.30807,192,57619 בנובמבר 200823:25IA-64
C2.dll14.0.50727.30802,490,36819 בנובמבר 200823:26x86
C2.dll14.0.50727.30803,600,38419 בנובמבר 200823:33x64
C2.dll14.0.50727.30802,203,64819 בנובמבר 200823:33x86

פתרון הבעיה


כדי לעקוף בעיה זו, השתמש באחת מהשיטות הבאות:
  • להשתמש במילת המפתח נדיף כשאתה מצהיר על המשתנים המשמשים במשפטי אם .
  • השבת את האפשרות מיטוב מהירות. לדוגמה, החלף את האפשרות /Ot האפשרות /Os (קוד קטן מועדפת) . לחלופין, השתמש באפשרות /O1 במקום את /O2 או האפשרות /Ox .
  • הוסף שורת קוד לפני הפעולה להשוות משפטי אם בשנייה. לדוגמה, הוסף משפט printf .

מצב


Microsoft אישרה כי מדובר בבעיה במוצרי Microsoft הרשומים במקטע 'חל על'.

מידע נוסף


לקבלת מידע נוסף אודות קוד אחד או יותר משפטי עשויים לפעול בצורה שגויה בעת שימוש בתכונה מיטוב קוד ב- Visual Studio 2005, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:

925792 משפטי קוד אחד או יותר עשויים לפעול בצורה שגויה בעת שימוש בתכונה מיטוב קוד ב- Visual Studio 2005

לקבלת מידע נוסף על מינוח עדכוני התכנה, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:
824684 תיאור המינוח הרגיל המשמש לתיאור עדכוני התוכנה של מיקרוסופט