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

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

एमएफसी को माइक्रोसॉफ्ट द्वारा 1992 में प्रस्तुत किया गया था और जल्दी से इसका व्यापक उपयोग हुआ था। जबकि माइक्रोसॉफ्ट ने तब से वैकल्पिक अनुप्रयोग रूपरेखा प्रस्तुत किए हैं | एमएफसी का व्यापक रूप से उपयोग किया जाता है।

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

एमएफसी की विचित्रता कई कार्यों, मैक्रोज़ और मानक पूर्वसंकलित हेडर नाम stdafx.h के लिए उपसर्ग के रूप में Afx का उपयोग है। प्रारंभिक विकास के समय, जो एमएफसी बन गया उसे एप्लिकेशन फ्रेमवर्क एक्सटेंशन और संक्षिप्त एफ़एक्स कहा जाता था। माइक्रोसॉफ्ट फाउंडेशन क्लास (एमएफसी) नाम को इन संदर्भों को बदलने के लिए रिलीज़ चक्र में बहुत देर से अपनाया गया था।

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

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

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

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

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

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

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

यह भी देखें

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

बाहरी संबंध

 * The latest supported विजुअल C++ downloads - माइक्रोसॉफ्ट
 * Where can I download विजुअल C++ Redistributables? - माइक्रोसॉफ्ट
 * MSDN एमएफसी Reference - माइक्रोसॉफ्ट
 * एमएफसी: विजुअल स्टूडियो 2005 and Beyond - माइक्रोसॉफ्ट
 * An Inside Look At The Next Generation Of विजुअल C++ (covers the major एमएफसी 9 updates) - माइक्रोसॉफ्ट