Movatterモバイル変換


[0]ホーム

URL:


לדלג לתוכן
ויקיפדיההאנציקלופדיה החופשית
חיפוש

Microsoft Foundation Classes

מתוך ויקיפדיה, האנציקלופדיה החופשית

מחלקות התשתית שלמיקרוסופט,Microsoft Foundation Classes, אוMFC, זוספרייה של מיקרוסופט, העוטפת במחלקות++C את ה-API שלחלונות, ומהווהמסגרת יישום[1] לפיתוח בסביבת חלונות. מוגדרות בה מחלקות עבור מרבית שגרות הטיפול באובייקטים של חלונות וכן עבור חלונות מוגדרים מראש (predefined windows) ופקדים שכיחים.

ההיסטוריה של MFC

[עריכת קוד מקור |עריכה]

MFC נוצרה ב־1992 עם המהדר (C/C++ 7.0 (compiler של מיקרוסופט, לשימוש עם גרסאות16 ביט של חלונות. היה זה חלק ממאמץ כללי של מיקרוסופט להשגתנתח שוק לכלי פיתוח. MFC עוצבה להיות חלון הראווה ליכולותיה שלשפת התכנות ++C. באותם ימים ++C רק החלה להחליף את C בפיתוחם של יישומיתוכנה מסחריים ו־C/C++ 7.0 הייתה הראשונה בין המהדרים של מיקרוסופט בהוספת תמיכה ב־++C. את ההשראה לפיתוחה קיבלה MFC מ־TCL)Think Class Library) שלמקינטוש - שמאוחר יותר נרכשה על ידיסימנטק - ובהרבה מובנים קיים דמיון למבנה שלה.

בתחרות עם בורלנד

[עריכת קוד מקור |עריכה]

OWL)Object Windows Library) היה מוצר מתחרה שהוצג בידיבורלנד באותה התקופה. ה-OWL עוצב עבור מהדר הטורבו C של בורלנד. לזמן מה היה OWL פופולרי יותר מאשר MFC, מכיוון שהוא נאמן יותר לקווים המנחים שלתכנות מונחה עצמים. אך למרות זאת הוא איבד נתח שוק, עקב הפיגור בהוצאת עדכוני OWL למאפייניה החדישים של חלונות וכאשר בורלנד שחררה גרסה חדשה שלסביבת פיתוח, חסרת תאימות למהדורות הקודמות, היה זה עקב כך, שנאלצה לרכוש ממיקרוסופטרישיון לשימוש ב-MFC.

שינויים במאקרויים של ++C

[עריכת קוד מקור |עריכה]

כאשר MFC הוצגה, מיקרוסופט הרחיבה את תחביר ++C עם סדרות שלמאקרויים לניהול הודעות (messages),חריגות (exceptions) וטיפול דינמי בעצמים בזמן ריצה (dynamic class instantiation), של חלונות. השינויים התחביריים להודעות חלונות נועדו לצמצום הזיכרון הנדרש, באמצעות מניעת שימוש מיותר בטבלה וירטואלית (vtable) וסיפקו מבנה יותר קונקרטי למגוון הכלים המסופקים בסביבת הפיתוחVisual C++ לעריכת ולתמרון קוד בלי לנתח את כל השפה. המאקרויים לטיפול בהודעות החליפו את מנגנון הפונקציות הווירטואליות שסופק על ידי ++C. מכיוון שכמה גרסאות של מאקרויים הכשילו את בדיקת הטיפוס הנעשית בידי המהדר, השימוש בהם נעשה מקור פורה לבאגים עבור משתמשי MFC. המאקרויים המיישמים סִדרות (serialization), תמיכה בחריגות וטיפוסי זמן ריצה דינמיים (dynamic runtime types), היו פחות בעייתיים והקדימו יכולות להרחבות של שפה מבוססתתקן, במספר שנים. גרסות32 ביט של MFC, עבורWindows NT 3.1 ומערכות הפעלה מאוחרות יותר של חלונות, שמרו על מאפיינים אלו לשם תאימות.

התפתחויות מאוחרות

[עריכת קוד מקור |עריכה]

MFC קודמה בתחילה בידי מיקרוסופט. אך הבולטות שניתנה לה, הועמדה מאוחר יותר בצילן של מספרטכנולוגיות אחרות. ההתפתחות באה כשנעשה ברור ש־MFC מורכבת מדי עבור מתכנתים רבים ולכן שמה מיקרוסופט דגש רב יותר עלVisual Basic ככלי פיתוח לתוכנה מסחרית. כיום, היורש של Visual Basic ושל MFC הואWindows Forms[2] ב-Rapid application development[3] שלNet.. תוכניות C++Native[4] יכולות להשתמש ב־Windows Forms באמצעות הוספת C++ managed extensions[5].

MFC ממשיכה גם כיום לשמש לפיתוח חדש, בחברות שנכנסו להתחייבות אסטרטגית ל־++C ולפלטפורמת חלונות.

יתרונות של MFC

[עריכת קוד מקור |עריכה]
  • מהצד המעשי, יתרונה העיקרי של MFC הוא באספקת מודלתכנות מונחה עצמים ל־APIs של חלונות.
  • יתרון נוסף של MFC הן עטיפות טיפוסי ++C עבורטיפוסי נתונים משויכי־משאב נפוצים של חלונות, שמספקים סגירת טיפול אוטומטית, כאשר האובייקט שייצר אותן חורג מהתחום.
  • MFC מספקת מסגרת עבודה שלמסמך/תצוגה (Document/View) ליצירת ארכיטקטורה מבוססת MVC (תבנית Model-View-Controller).

מחלקות MFC

[עריכת קוד מקור |עריכה]

ב־MFC למעלה ממאתיים מחלקות, שקוד המקור המלא שלהן, כלול בכל עותק של סביבת הפיתוח ++Visual C. המחלקות מאורגנות בעץ תורשה שבראשו המחלקה CObject ורוב המחלקות יורשות ממנה. על פי רוב, גם מחלקה שכותב המתכנת תירש מ־CObject. את רובן של המחלקות אין צורך להכיר באופן מיידי. וכאשר עולה צורך באחת מהן, ניתן לחפש מידע עליה בעזרה המקוונת של מיקרוסופט MSDN.

סימון בשיטה ההונגרית

[עריכת קוד מקור |עריכה]

בשיטת סימון זו מקבל משתנה שם תאורי שמתחיל באות גדולה. כאשר השם מורכב ממספר מילים, כל מילה מתחילה באות גדולה. את השם מקדמים באותיות שמציינות את טיפוסו. לדוגמה: b תציין משתנה בוליאני (boolean), מחלקה (class) תצוין ב־c ומחרוזת (string) תצוין באמצעות str או sz (או psz אם המחרוזת מוחזקת על ידי מצביע בתכנה).

משתנים בשיטה זו עשויים להראות כך: lpszName, או hWnd.

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

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

לימוד MFC

[עריכת קוד מקור |עריכה]

כאמור MFC הייתה מורכבת מדי בעבור מתכנתים רבים והיוותה רף גבוה מדי.

בסביבת הפיתוח ++Visual C ישנם אשפים (wizards) המייצרים כמויות גדולות של קוד במהירות רבה. למרות היתרון הקיים באשפים אלו, ישנם הממליצים להתחיל את הלימוד בלא להשתמש בהם כיוון שהם עלולים לבלבל את המתלמד.

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

כדי לשלוט ב־MFC יש לדעת את הנושאים הבאים:

  • שפת התכנותC. אף על פי שיש הסוברים כי לאחר שפותחה ++C, לימוד שפת C מיותר. אך כדי להכיר את Windows API שכתוב ב־C - וש־MFC מהווה מעטפת ++C עבורו - נחוץ לדעת גם שפה זו.
  • שפת התכנותC++, משמשת בלימוד ובכתיבת הקוד של MFC.
  • מערכת ההפעלהחלונות. נדרש ידע כללי על מרכיביה של מערכת הפעלה זו.
  • הכרתיישום חלונות והדרך בה הוא מקושר למערכת ההפעלה חלונות, עליה הוא פועל.
  • הכרה בסיסית של תכנות ב־API של חלונות.
  • ידיעת סביבת הפיתוחVisual C++, על תפריטיה השונים ועל חלקי חלון הפרויקט שנבנה בה.
  • ספריית MFC ודרך השימוש בה.

גרסאות

[עריכת קוד מקור |עריכה]
גרסת מוצרתכונות עיקריותגרסת .Netספריהגרסת MFCשנת שחרור
Microsoft C/C++ 7.0ממשק עבור WINDOWS API

מחלקות לשימוש כללי:

מחלקות אוסף - Collection

מחלקת מחרוזת - String

מחלקות זמן ותאריך

תמיכה ביישומי ריבוי מסמכים - MDI

MFC 1.01992
Visual C++ 1.0תמיכה בחלוניות Open ו Save As ובתצוגת רשימת קבצים אחרונים

תמיכה בתצוגה לפני הדפסה

תמיכה בסרגלי כלים ושורת סטטוס

תמיכה משופרת בממשק OLE 1.0

תמיכה ב-DLL

MFC 2.0
Visual C++ 1.5תמיכה בקישוריות למסדי נתונים -ODBC

ממשק ל-OLE 2.01

MFC 2.5
Visual C++ 1.51MFC 2.51
Visual C++ 1.52cMFC 2.5

(עדכון אחרון ל-Windows 3.x)

Visual C++ 2.0תמיכה בכרטיסיות

סרגלי תפריטים צפים

ערכת פיתוח פקדים - CDK ליצירת פקדי OLE

MFC 3.0
Visual C++ 2.1תמיכה בפקדים המשותפים

דרייבר ODBC 2 משולב עם מנוע Access Jet

מחלקות winsock

MFC 3.1
Visual C++ 2.2MFC 3.2
Visual C++ 4.0מחלקות עצמי גישה לנתונים - DAO

סרגלי פקדים צפים של חלונות 95

תמיכה מליאה בפקדים המשותפים של חלונות 95

מחלקות לסנכרון מטלות

MFC 4.0 (mfc40.dll כולל עםWindows 95)אוגוסט 1995
Visual C++ 4.1MFC 4.1
Visual C++ 4.2מחלקות WinInet

מחלקות שרת ActiveX Documents

מחלקות פקדי MFC ActiveX

MFC 4.2 (mfc42.dll כוללWindows 98מרץ 1998
eMbedded Visual C++ 3.0mfc42.dllMFC 4.2
Visual C++ 5.0ספריית ATL

תמיכת שפת C++ עבור לקוח - COM

mfc42.dllMFC 4.21, עדכון

גדול מ MFC 4.2.

Visual C++ 6.0תמיכה עבור HTML דינמי

מכולות מסמכים פעילים

תמיכה ב־ADO

mfc42.dllMFC 6.01998
eMbedded Visual C++ 4.0mfcce400.dllMFC 6.0
Visual C++ .NET 2002

(Visual C++ 7.0)

1.0mfc70.dllMFC 7.0פברואר 2002
Visual C++ .NET 2003

(Visual C++ 7.1)
Visual C++ .NET 2003 + MS11-025

1.1mfc71.dllMFC 7.1
MFC 7.10.6119.0
אפריל 2003
אפריל 2011
Visual C++ 2005

(Visual C++ 8.0)
Visual C++ 2005 SP1
Visual C++ 2005 SP1 + MS09-035

2.0mfc80.dllMFC 8.0.50727.42
MFC 8.0.50727.762
MFC 8.0.50727.4053
MFC 8.0.50727.5592
MFC 8.0.50727.6195
אוקטובר 2005
יוני 2007
יולי 2009
אפריל 2011
יוני 2011
Visual C++ 2008

(Visual C++ 9.0)
Visual C++ 2008 with Feature Pack
Visual C++ 2008 SP1
Visual C++ 2008 SP1 + MS09-035

3.5mfc90.dllMFC 9.0.21022.8
MFC 9.0.30411
MFC 9.0.30729.1
MFC 9.0.30729.4148
MFC 9.0.30729.5570
נובמבר 2007
אפריל 2008
אוגוסט 2008
יולי 2009

אפריל 2011

Visual C++ 2010

(Visual C++ 10.0)
Visual C++ 2010 + MS11-025

4.0mfc100.dllMFC 10.0.30319.1
MFC 10.0.30319.415
MFC 10.0.40219.1
MFC 10.0.40219.325
אפריל 2010
אפריל 2011
מרץ 2011
אוגוסט 2011
Visual C++ 2012

(Visual C++ 11.0)
Visual C++ 2012 Update 1
Visual C++ 2012 Update 3
Visual C++ 2012 Update 4

4.5mfc110.dllMFC 11.0.50727.1
MFC 11.0.51106.1
MFC 11.0.60610.1
MFC 11.0.61030
26 ביולי 2012
5 בנובמבר 2012
26 ביולי 2013
20 בנובמבר 2013
Visual C++ 2013

(Visual C++ 12.0)
Visual C++ 2013 Update 2

4.5.1, 4.5.2mfc120.dllMFC 12.0.21005.1
MFC 12.0.30501.0
5 באוקטובר 2013
30 בדצמבר 2014
Visual C++ 2015

(Visual C++ 14.0)
Visual C++ 2015 Update 1
Visual C++ 2015 Update 2
Visual C++ 2015 Update 3
Visual C++ 2015 Update 3 + KB3165756

4.6
4.6.1
mfc140.dllMFC 14.0.23026.0
MFC 14.0.23506.0
MFC 14.0.23918.0
MFC 14.0.24210.0
MFC 14.0.24212.0
20 ביולי 2015
30 בנובמבר 2015
Visual C++ 2017 (Visual C++ 15.0)4.6.2mfc140.dllMFC 14.10.25008.07 במרץ 2017

לקריאה נוספת

[עריכת קוד מקור |עריכה]
  • מאיר סלע,Visual C++/MFC-מדריך מקצועי - הוצאת 'מרכז ההדרכה 2000', 2001.

קישורים חיצוניים

[עריכת קוד מקור |עריכה]

הערות שוליים

[עריכת קוד מקור |עריכה]
בקרת זהויותעריכת הנתון בוויקינתונים
אוחזר מתוך "https://he.wikipedia.org/w/index.php?title=Microsoft_Foundation_Classes&oldid=36574842"
קטגוריות:
קטגוריות מוסתרות:

[8]ページ先頭

©2009-2026 Movatter.jp