באג בקומפילר של מיקרוסופט
2 באוקטובר, 2004 | מאת שחר שמש |למרות הקטגוריה הנבחרת, פה לא עבדתי על Wine, אלא ישירות על חלונות.
המהדר הוא Visual Studio 6 של מיקרוסופט, עם כל ערכות העדכון האחרונות.
הבעיה:
C:Documents and SettingssunSourcesdbconvertdbconvert.cpp(297) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file '.toil.c', line 4328)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
(compiler file '.toil.c', line 4328)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
כן, יש באג בקומפילר של מיקרוסופט. הוא אפילו נותן לי מספר שורה שבה קרה הבאג. לא עוזר לי בגרוש, אבל יש מספר שורה.
הפתרון – ליצור את השורות הבאות:
// Need to copy result to temporary storage to avoid compiler bug (ARGH!!)
_variant_t primarykey=GET(srcIndexes, PRIMARY_KEY);
if( primarykey ) {
_variant_t primarykey=GET(srcIndexes, PRIMARY_KEY);
if( primarykey ) {
במילים אחרות, אם אני מנסה לשים את הפקודה "GET" ישירות בתוך ה-if, זה לא עובד. אם אני משתמש במשתנה ביניים, זה כן.
גררר
באגים זה תמיד דבר מעצבן. באגים בקומפיילר זה דבר מעצבן כיפליים. למרבה המזל, שימוש מושכל ב-google יודע למצוא את הפתרונות לבעיות האילו.
שחר


2 תגובות עבור “באג בקומפילר של מיקרוסופט”
מאת איל בתאריך 2 באוקטובר, 2004 | תגובה
מעצבן ככל שזה יהיה, באגים בקומפיילרים הם לא משהו ספציפי למיקרוסופט…
מאת שחר שמש בתאריך 2 באוקטובר, 2004 | תגובה
לא ניסיתי לטעון אחרת. סתם פרקתי קיטור.
זה כן תמוה שהבאג הזה שרד לפחות שתי גרסאות של הקומפיילר, אולי אפילו שלוש.
שחר