माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी

माइक्रोसॉफ्ट फाउंडेशन क्लास लाइब्रेरी (एमएफसी) खिड़कियाँ  के लिए डेस्कटॉप एप्लिकेशन विकसित करने के लिए एक सी ++  ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग  | ऑब्जेक्ट-ओरिएंटेड  पुस्तकालय (कंप्यूटर विज्ञान)  है।

MFC को Microsoft द्वारा 1992 में पेश किया गया था और जल्दी से इसका व्यापक उपयोग हुआ। जबकि Microsoft ने तब से वैकल्पिक अनुप्रयोग ढाँचे पेश किए हैं, MFC का व्यापक रूप से उपयोग किया जाता है।

इतिहास
MFC को 1992 में Microsoft के C/C++ 7.0 संकलक  के साथ विंडोज के 16-बिट संस्करणों के साथ विंडोज एपीआई के लिए एक बेहद पतले ऑब्जेक्ट-ओरिएंटेड C++ रैपर के रूप में पेश किया गया था। उस समय वाणिज्यिक अनुप्रयोग सॉफ़्टवेयर के विकास के लिए C++ ने C (प्रोग्रामिंग भाषा) को प्रतिस्थापित करना शुरू ही किया था। MFC प्रोग्राम में, सीधे Windows API कॉल की बहुत कम आवश्यकता होती है। इसके बजाय, प्रोग्राम Microsoft Foundation क्लास क्लास से ऑब्जेक्ट बनाते हैं और उन ऑब्जेक्ट से संबंधित सदस्य फ़ंक्शन को कॉल करते हैं। उन कार्यों में से कई अपने नाम संबंधित एपीआई कार्यों के साथ साझा करते हैं। MFC की एक विचित्रता कई कार्यों, मैक्रोज़ और मानक पूर्वसंकलित हेडर नाम stdafx.h के लिए उपसर्ग के रूप में Afx का उपयोग है। शुरुआती विकास के दौरान, जो एमएफसी बन गया उसे एप्लिकेशन फ्रेमवर्क एक्सटेंशन और संक्षिप्त एफ़एक्स कहा जाता था। Microsoft Foundation Classes (MFC) नाम को इन संदर्भों को बदलने के लिए रिलीज़ चक्र में बहुत देर से अपनाया गया था।

MFC 8.0 को Visual Studio 2005 के साथ रिलीज़ किया गया था। MFC 9.0 को Visual Studio 2008 के साथ रिलीज़ किया गया था। 7 अप्रैल, 2008 को Microsoft ने Visual Studio 2008 और MFC 9 के आउट-ऑफ-बैंड अपडेट के रूप में MFC कक्षाओं के लिए एक अपडेट जारी किया। अद्यतन में रिबन (कंप्यूटिंग) और संबंधित यूआई वेब विजेट, पूरी तरह से अनुकूलन योग्य उपकरण पट्टी, डॉकिंग पैन सहित नए यूजर इंटरफेस निर्माण शामिल हैं, जिन्हें या तो स्वतंत्र रूप से फ्लोट किया जा सकता है या किसी भी तरफ और टैब (जीयूआई) में डॉक किया जा सकता है। एमएफसी शुरू में विजुअल स्टूडियो के व्यावसायिक संस्करणों की एक विशेषता थी। जैसे, यह फ्रीवेयर विजुअल सी ++ एक्सप्रेस में शामिल नहीं है। हालांकि, 2014 में शुरू किए गए विजुअल स्टूडियो#कम्युनिटी में एमएफसी शामिल है।

ऑब्जेक्ट विंडोज लाइब्रेरी (ओडब्लूएल), जिसे बोर्लैंड के टर्बो सी ++ कंपाइलर के साथ उपयोग के लिए डिज़ाइन किया गया था, उसी समय बोर्लैंड द्वारा पेश किया गया एक प्रतिस्पर्धी उत्पाद था। आखिरकार, बोरलैंड ने ओडब्लूएल के विकास को बंद कर दिया और माइक्रोसॉफ्ट से एमएफसी हेडर, पुस्तकालयों और डीएलएल के वितरण को लाइसेंस दिया। थोड़े समय के लिए, हालांकि इसने कभी भी MFC के लिए पूरी तरह से एकीकृत समर्थन की पेशकश नहीं की। बोरलैंड ने बाद में OWL फ्रेमवर्क को बदलने के लिए विजुअल कंपोनेंट लाइब्रेरी जारी की।

सुविधाएँ
एमएफसी एक पुस्तकालय है जो सी ++ वर्ग (कंप्यूटर प्रोग्रामिंग)  में विंडोज एपीआई के रैपर लाइब्रेरी भाग है, जिसमें कार्यक्षमता शामिल है जो उन्हें डिफ़ॉल्ट आवेदन ढांचा का उपयोग करने में सक्षम बनाती है। कई हैंडल (कंप्यूटिंग)-प्रबंधित विंडोज़ ऑब्जेक्ट्स और पूर्वनिर्धारित विंडोज़ और सामान्य नियंत्रणों के लिए भी कक्षाएं परिभाषित की गई हैं।

इसकी शुरुआत के समय, MFC ने विंडोज मैसेज-हैंडलिंग (मैसेज मैप्स के माध्यम से) के लिए C++ मैक्रो (कंप्यूटर विज्ञान)  प्रदान किया। ),  एक्सेप्शन हेंडलिंग, रन-टाइम प्रकार की जानकारी | रन-टाइम टाइप आइडेंटिफिकेशन (RTTI), क्रमबद्धता और डायनेमिक क्लास इंस्टेंटेशन। मैसेज-हैंडलिंग के लिए मैक्रोज़ का उद्देश्य अनावश्यक वर्चुअल टेबल उपयोग से बचकर मेमोरी की खपत को कम करना है और पूरी भाषा को पार्स किए बिना कोड को संपादित और हेरफेर करने के लिए विभिन्न विज़ुअल C++- आपूर्ति किए गए टूल के लिए अधिक ठोस संरचना प्रदान करना है। संदेश-हैंडलिंग मैक्रोज़ ने C++ द्वारा प्रदान किए गए आभासी समारोह तंत्र को बदल दिया।

क्रमांकन, अपवाद और RTTI के लिए मैक्रोज़ ने Microsoft C++ में इन सुविधाओं की उपलब्धता को कई वर्षों से पूर्व निर्धारित किया है। विंडोज एनटी 3.1 और बाद में विंडोज ऑपरेटिंग सिस्टम के लिए एमएफसी के 32-बिट संस्करण, कंपाइलर्स का इस्तेमाल करते हैं जो भाषा सुविधाओं को लागू करते हैं और मैक्रोज़ को केवल अनुकूलित कार्यान्वयन प्रदान करने के बजाय भाषा सुविधाओं को लपेटने के लिए अद्यतन करते हैं, ऊपर की ओर संगतता को महसूस करते हैं।

एमएफसी रिबन रिसोर्स एडिटर डेवलपर को रिबनएक्स एपीआई जैसे एक्सएमएल-आधारित घोषणात्मक मार्कअप का उपयोग करने के बजाय ग्राफिक रूप से रिबन डिजाइन करने की अनुमति देता है। वैकल्पिक रूप से, रिबन घटकों को सीधे रिबन क्लास विधियों के एक नए सेट को कॉल करके प्रोग्राम किया जा सकता है। डेवलपर सुविधाजनक होने पर ग्राफिकल और प्रोग्रामेटिक रिबन विकास को मिला सकता है। MFC एप्लिकेशन विज़ार्ड को भी नई सुविधाओं का समर्थन करने के लिए अपग्रेड किया गया है, जिसमें यह चुनने के लिए चेक-बॉक्स शामिल है कि एप्लिकेशन रिबन या डॉकिंग पैन का उपयोग करेगा या नहीं। नई कार्यक्षमता नई कक्षाओं में प्रदान की जाती है ताकि पुराने अनुप्रयोग अभी भी चलते रहें। यह अपडेट बीसीजीसॉफ्ट के बीसीजीकंट्रोलबार लाइब्रेरी प्रोफेशनल एडिशन पर बन रहा है। Microsoft ने रिबन के उपयोगकर्ताओं पर अतिरिक्त लाइसेंसिंग आवश्यकताएँ लागू की हैं। इनमें Microsoft UI डिज़ाइन दिशानिर्देशों का पालन करने की आवश्यकता और Microsoft Office के साथ प्रतिस्पर्धा करने वाले अनुप्रयोगों में UI के उपयोग को प्रतिबंधित करने वाला एक प्रतिस्पर्धा-विरोधी खंड शामिल है।

MFC का उपयोग स्थिर पुस्तकालय को लिंक करके या MFC डायनामिक-लिंक लाइब्रेरी को जोड़कर किया जा सकता है।

यह भी देखें

 * सक्रिय टेम्पलेट लाइब्रेरी (एटीएल)
 * जीएलआईबी
 * जीटीके
 * gtkmm
 * रस
 * क्यूटी (सॉफ्टवेयर)
 * मानक टेम्पलेट लाइब्रेरी (STL)
 * विंडोज टेम्पलेट लाइब्रेरी (डब्ल्यूटीएल)
 * Wxविजेट

बाहरी संबंध

 * The latest supported Visual C++ downloads - Microsoft
 * Where can I download Visual C++ Redistributables? - Microsoft
 * MSDN MFC Reference - Microsoft
 * MFC: Visual Studio 2005 and Beyond - Microsoft
 * An Inside Look At The Next Generation Of Visual C++ (covers the major MFC 9 updates) - Microsoft