c++ एमएफसी बनाम एटीएल ऑन एक्टिव एक्स




mfc atl (3)

ActiveX विकास के लिए मुझे क्या उपयोग करना चाहिए? एमएफसी या एटीएल?
माइक्रोसॉफ्ट दस्तावेज़ में यह कहते हैं कि हम एमएफसी का उपयोग एक्टिव्क्स नियंत्रणों को बनाने के लिए कर सकते हैं। लेकिन जब मैं गॉगलिंग कर रहा था तो मैंने कुछ लोगों को यह कहते हुए देखा कि एटीएल नौकरी के लिए अच्छा है। यह वही है जो मुझे विकिपीडिया से मिला है जो उस तर्क की पुष्टि करने जैसा लगता है।

दूसरी तरफ, एटीएल, परिस्थितियों में एक हल्का वैकल्पिक विकल्प है जहां ग्राफ़िकल यूजर इंटरफेस एमएफसी के कुछ हिस्सों की आवश्यकता नहीं है।

मुझे क्या इस्तेमाल करना चाहिए? अगर मैं दोनों का उपयोग कर सकता हूं, तो उनका उपयोग करने के पेशेवरों और विपक्ष क्या हैं?


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

मैं एटीएल (और डब्ल्यूटीएल) का उपयोग करने का सुझाव दूंगा यदि आप एक छोटे कम-ओवरहेड एक्टिवक्स घटक चाहते हैं


एटीएल यहां मेरा नंबर 1 है!

यह इंटरफ़ेस डिजाइन करने में अधिक लचीला है और कैसे COM ऑब्जेक्ट हैंडलिंग अत्यंत समायोज्य है।

एटीएल भी दोहरी इंटरफेस के आसान निर्माण की अनुमति देता है। एमएफसी सिर्फ एक सीधे आगे आईडीआईएसपैच कार्यान्वयन है

यहां तक ​​कि मेरे एमएफसी आवेदन में भी मैं सभी COM भागों के लिए आंतरिक रूप से केवल एटीएल का उपयोग करता हूं।


ATL का उपयोग करें मैं 20+ वर्षों के लिए एमएफसी में विकासशील रहा हूं उपयोग के विशाल बहुमत के लिए, एटीएल बेहतर विकल्प है क्योंकि यह समझने के लिए अधिक हल्के और सरल है - हालांकि दोनों में तीव्र सीखने की अवस्था है

उपयोग के लिए मैं एटीएल पर एमएफसी का चयन करने का एकमात्र कारण होगा:

1) मेरे पास एक बहुत ही सक्रिय ActiveX / windows control है जो मैं लिख रहा हूं और एमएफसी में इसके बारे में खिड़कियां नियंत्रण हिस्से लिखना समझ में आता है और इसलिए यह एमआईसीसी में नियंत्रण के कॉम इंटरफेस को समझता है। हालांकि, पूरक वस्तुओं (एक संपत्ति जो एक वस्तु देता है) के लिए, मैं ATL का उपयोग होता है जब तक कि वे भी एक बहुत ही शामिल विंडोज़ नियंत्रण थे

2) मुझे किसी दस्तावेज़ प्रकार के लिए ओएलई (ऑब्जेक्ट लिंकिंग और एंबेडिंग) का उपयोग करना होगा और इसके लिए एमएफसी के फ्रेमवर्क में उपयोग करना आसान है I

मैं 20+ वर्षों के लिए एक ही एमएफसी परियोजना पर काम कर रहा हूं, एक बहुत ही शामिल विंडोज़ कार्यक्रम। कार्यक्रम के अधिकांश पहलुओं को सीएएम द्वारा उजागर किया जाता है। हमारे पास एमएफसी कॉम और एटीएल कॉम का मिश्रण है जब मैंने पहली बार शुरू किया, और एटीएल ने कर्षण प्राप्त करने से पहले, मैं आम तौर पर एमएफ़सी में कॉम ऑब्जेक्ट को कार्यान्वित करता था। अब, जब तक कि कुछ ऊपर के दो कारणों में फिट नहीं हो जाता, तब तक मैं एटीएल का इस्तेमाल करता हूं।

लेकिन, यह सिर्फ एक राय है







atl