יישום מבוסס-Win32 2010 C++ החזותי עלול לקרוס או כשלים פונקציה אחרים עלולה להתרחש אם הפרוייקט עוברת קומפילציה על-ידי שימוש _fastcall ועל -ידי שימוש באפשרות המיטוב מהדר


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


שקול את התרחיש הבא:
  • צור פרוייקט בהתבסס על-ידי Microsoft Visual C++ 2010 Win32.
  • השתמש במילת המפתח _fastcall בפונקציות מסוימות של הפרוייקט. לחלופין, תגדיר את המאפיין מוסכמת קריאה עבור הפרוייקט כדי _fastcall.
  • תפעיל את אחת האפשרויות מהדר מיטוב ב- Microsoft Visual Studio 2010. לדוגמה, אם תפעיל הגדלת מהירות (/ O2) אפשרות מיטוב של המהדר.

    הערה כאשר מופעלת אפשרות מהדר מיטוב, התכונה מיטוב ערך החזרה (RVO) מופעלת ב- Visual Studio 2010.
  • בצע קומפילציה של הפרוייקט ולאחר מכן הפעל את היישום.
בתרחיש זה, היישום עלול לקרוס, או עלולות להיות תקלות פונקציה אחרים.

לדוגמה, היישום קורס עקב חריגה הפרת גישה.

הגורם


בעיה זו מתרחשת מאחר קוד שגוי נוצר כאשר היישום עוברת קומפילציה על-ידי שימוש _fastcall אם התכונה RVO מופעלת. קוד שגוי החלפת זיכרון באופן אקראי. לכן, עלולה להתרחש כשלים שונים של הפונקציה.

פתרון


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

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

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



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

כדי להחיל תיקון חם זה, יש ברשותך Microsoft Visual Studio במחשב 2010.

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

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

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

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

פרטי קובץ

הגירסה האנגלית של תיקון חם זה כוללת את תכונות הקובץ (או תכונות קובץ מתקדמות יותר) המפורטות בטבלה הבאה. התאריכים והשעות המתייחסים לקבצים הללו רשומים לפי זמן אוניברסלי מתואם (UTC). כשמציגים את פרטי הקובץ, היא מומרת לזמן המקומי. כדי לברר את הפרש השעות בין זמן UTC לזמן המקומי, השתמש בכרטיסייה אזור זמן בפריט ' תאריך ושעה ' בלוח הבקרה.


עבור כל הגירסאות הנתמכות של Visual Studio 2010
שם קובץגירסת קובץגודל קובץתאריךשעהפלטפורמה
C2.dll16.0.30319.3792,508,60825-Oct-201008:42x86
C2.dll16.0.30319.3792,588,99225-Oct-201008:42x86
C2.dll16.0.30319.3792,629,44025-Oct-201008:42x86
C2.dll16.0.30319.3792,975,55225-Oct-201008:42x64
C2.dll16.0.30319.3797,351,61625-Oct-201008:42IA-64

מצב


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