פורסם 2007 במאי 2618 שנים קודם כל תודה על העזרה המצויינת שאני מקבל פה עד עכשיו הבעיה ממש הזויה נתתי איזה חלק קוד קטן לחבר הקןד עובד אצלי ב 100% הקוד הוא : rect=new RECT; rect->left=0; rect->top=0; rect->right=1024; rect->bottom=768; InvalidateRect(hwnd,rect,FALSE); כאשר בהגדרת החלון מוגדר: RECT *rect; הקטע הזה אמור לגרום לכך שכל המסך לא נגיש מה שאמור לרענן אותו 2 הפרויקיטים לידי והקטע פשוט זהה בשניהם אצלי זה עובד ואצלו הארורים זה : main.cpp(983): error C2059: syntax error : 'constant'main.cpp(984): error C2039: 'rect' : is not a member of 'tagRECT' c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinDef.h(296) : see declaration of 'tagRECT'main.cpp(984): error C2232: '->tagRECT::top' : left operand has '' type, use '.'main.cpp(985): error C2059: syntax error : 'constant'main.cpp(986): error C2039: 'rect' : is not a member of 'tagRECT' c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\WinDef.h(296) : see declaration of 'tagRECT'main.cpp(986): error C2232: '->tagRECT::bottom' : left operand has '' type, use '.' למישהו יש רעיון מה הבעיה ? תודה מראש
פורסם 2007 במאי 2618 שנים מחבר הכללת את הספריות של windows?כן והיותר מוזר שבחלון אחר באותו פרוייקט אין ארורים
פורסם 2007 במאי 2618 שנים מחבר איזו שורה זו שורה 983?rect->left=0;מה זה tagRECT?אין לי מושג למה זה מופיע בכללפעם ראשונה אני נתקל בביטוי הזה
פורסם 2007 במאי 2618 שנים יש מצב שאתה יורש אולי בטעות מ-RECT?בשביל לחסוך חיפוש, יש תיעוד על RECT שהוא בעצם tagRECT ב-http://msdn2.microsoft.com/en-us/library/ms798624.aspx
פורסם 2007 במאי 2718 שנים אין לי מושג מה הבעיה אבל יש לי רעיונות.1) יכול להיות שלא הגדרת את rect כמצביע? הוא אמור להיות RECT*2) יכול להיות ש-rect הוא מקרו שהוגדר איפהשהו. תנסה לשנות את השם של המשתנה ל-prect (הוא בכל מקרה מצביע).3) אתה משתמש ב-precompiled headers ומשהו רע קרה להם. תעשה clean לכל הפרוייקט.4) אני לא חושב שזה זה, וזה קרה לי רק פעם או פעמיים בחיים, אבל לגרסאות ישנות של visual studio יש ממש באגים רעים וקרה ש-reboot פתר לי (ולאחרים) את הבעיה. לא, אני לא יודע איך זה יכול להיות, ולמה זה משפיע. ובכל זאת תעשה clean, reboot ו-rebuild all.
פורסם 2007 במאי 2718 שנים מחבר אין לי מושג מה הבעיה אבל יש לי רעיונות.1) יכול להיות שלא הגדרת את rect כמצביע? הוא אמור להיות RECT*2) יכול להיות ש-rect הוא מקרו שהוגדר איפהשהו. תנסה לשנות את השם של המשתנה ל-prect (הוא בכל מקרה מצביע).3) אתה משתמש ב-precompiled headers ומשהו רע קרה להם. תעשה clean לכל הפרוייקט.4) אני לא חושב שזה זה, וזה קרה לי רק פעם או פעמיים בחיים, אבל לגרסאות ישנות של visual studio יש ממש באגים רעים וקרה ש-reboot פתר לי (ולאחרים) את הבעיה. לא, אני לא יודע איך זה יכול להיות, ולמה זה משפיע. ובכל זאת תעשה clean, reboot ו-rebuild all.1) מוגדר כמצביע2) ניסיתי לשנות את השםעשיתי 3 ו- 4 לא עזרמשהו ששמתי לב הבעיה היא בשורות :PRECT->left=0;PRECT->right=0;כשאני מוחק אותם זה עובד כמו שצריך לדוג' : PRECT=new RECT; PRECT->top=0; PRECT->bottom=768; InvalidateRect(hwnd,PRECT,FALSE);כמובן שלא יעשה את העבודה אבל אין ארורים יש לך רעיון אחר ?
פורסם 2007 במאי 2718 שנים האם יכול להיות ש-RECT מוגדר ללא שדות של left או right אלא עם width?תמצא את ההגדרה שלו ב-H ותראה לנו.
פורסם 2007 במאי 2718 שנים מחבר האם יכול להיות ש-RECT מוגדר ללא שדות של left או right אלא עם width?תמצא את ההגדרה שלו ב-H ותראה לנו.הבעיה הסתדרה הטעות הייתה כל כך מטומטת בעע :\בטעות היה בקובץ אחר מוגדר :#define right 1#define left 2
פורסם 2007 במאי 2718 שנים זה פתרון נקודתי לבעיה אמיתית. כמובן שזה הפתרון המקובל, אבל לדוגמא אם הוא היה משתמש ב-enum להגדיר את left ו-right אז היו לכולנו פחות בעיות.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.