שאלת MFC

Rשף

New member
שאלת MFC

האם ניתן להשתמש בתוך OnReceive של AsyncSocket ב CCriticalSection מול thread-ים אחרים ?
 

gilad_no

New member
לא

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

Rשף

New member
האם thread-ים אחרים יקבלו עדיפות ?

כלומר האם המתנה לשחרור נעילה לא תגרום ל dead lock ? ואיך לומדים MFC לעומק, רוב הספרים שראיתי נוגעים רק בשכבה העליונה ?
 

gilad_no

New member
לא לומדים

MFC זה חרא. יש להם מספיק בעיות גם ככה. אם אתה רוצה לתכנת לחלונות בC++, תלמד WXWINDOWS,WTL או משהו אחר. אבל לא MFC.
 

DNile

New member
חחחח, איזה חד צדדיות...

איך לומדים MFC לעומק? א. נסיון. ב. MSDN. ג. ספרים, ביניהם Programming windows with MFC, Inside Visual C++, וכמובן: Mfc Internals. ד. שיטוט מדי פעם בתוך הקוד של MFC, שמגיע ביחד עם הקומפיילר.
 

gilad_no

New member
בכלל לא חד צדדיות

תכנתתי עם MFC מספיק זמן ואני מכיר אותה על בוריה. בגלל זה אני מרשה לעצמי לדבר כך. זה שזאת המערכת הכי נפוצה, לא הופך אותה להכי טובה. אם רוצים משהו קל, יש את VB. אם רוצים משהו יציב, יש את WXWINDOWS, ואם רוצים משהו שיתאים גם למקצוענים, יש את WTL. מכל הסיבות, אין אפילו טובה לבחור בMFC.
 

Rשף

New member
ואם רוצים משהו קל ושיהיה ב C ?

ובכל מקרה חצי חברה עובדת כבר שנים ב MFC כך שלצערי אני לא יכול לשנות
 

gilad_no

New member
שוב, WTL

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

Rשף

New member
ואם רוצים משהו קל ושיהיה ב C ?

ובכל מקרה חצי חברה עובדת כבר שנים ב MFC כך שלצערי אני לא יכול לשנות
 

gilad_no

New member
ועוד משהו,

גם אם משתמשים בMFC, *אסור* להשתמש במחלקות הSOCKET שלהם! אם תעבור על הקוד מקור, תמצא שם מלא באגים. יש כבר מספר פרוייקטים לMFC שמיועדים לתת סוקטים טובים ויציבים. כמו כן, לא הייתי ממליץ גם על ממשק INET שלהם (גם בו יש באגים). אם להשתמש בMFC, זה רק לGUI. לדברים רציניים, לא כדאי לסמוך עליהם.
 

Rשף

New member
../images/Emo51.gif אכן אני פועל כך

הוחלט לזנוח את השימוש ב CSocket לאחר שבהרצה הראשונה התברר שהתוכנה צורכת בערך 20% יותר זמן CPU, ובלי להזכיר נפילות לא מוסברות.
 
למעלה