שאלה

erezsh

New member
שאלה

שלום לא מזמן התחלתי ללמוד MFC (תחת VC++), ויש לי בעיה קלה אך מוזרה בניסיון לפתוח Common Dialog:
void FileOpen() { const char FileNameExt[]="TXT"; const char FileNameFilter[]="All|*.*|"; CFileDialog fileDialog (TRUE, FileNameExt, NULL, OFN_FILEMUSTEXIST, FileNameFilter); //if (fileDialog.DoModal() == IDOK) { //FileName = fileDialog.GetPathName(); //} }​
הפונקציה עוברת מצוין את הקומפילציה, אבל כשאני מפעיל אותה בזמן ריצה אני מקבל Error שנוצר כתוצאה מתנאי לא נכון של Assertion, בתוך הקוד של ה MFC:
{ ASSERT(afxCurrentResourceHandle != NULL);​
בקובץ AFXWIN1.INL שורה 22. מישהו יכול להגיד לי מה הבעיה ואיך לטפל בה? (או איך לבטל את ה Debug .. הממ..
) תודה רבה מראש. אה, ואם כבר אני שואל, איך אני גורם לקיצורי המקשים להופיע ליד הפריט בתפריט? (הכל היה הרבה יותר פשוט ב VB)
 

ihovav

New member
עבר כבר מלא זמן אבל אני אנסה

עד כמה שאני זוכר ב OFN_FILEMUSTEXIST הקובץ חייב להיות קיים במיקום מסויים לפני שאתה מריץ את התכנית - אתה בטוח שיש לך קובץ כזה ?
 

erezsh

New member
אתה בכיוון אבל לא הבנתי

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

erezsh

New member
בעצם..

שכחתי שפרסמתי את הקוד.. כך שאתה לא בהכרח בכיוון :) לא חשוב.. תתעלם..
 

Dannyk

New member
תן לי את הקובץ ואני יבדוק אותו

ואפתור את הבעעיה ואסביר לך
 

erezsh

New member
קובץ די פשוט

לא אמורה להיות בעיה (חוץ מהנ"ל). שנה את הסיומת ל Zip אחרי ההורדה.
 

odstudio

New member
הנה הפתרון:

בתחילת ה- WinMain שלך תוסיף את השורה הבאה:
AfxSetResourceHandle(hInstance);​
זהו.
 
למעלה