2010-06-25 14 views
12

मुझे आजकल सी ++ में आधुनिक विंडोज सॉफ्टवेयर कैसे लिखा गया है, इस बारे में मुझे बहुत दिलचस्पी है। मैंने अपने दोस्त से पूछा कि विंडोज सॉफ्टवेयर पर काम किया था और उसने कहा कि आखिरी चीजें जिनके साथ उन्होंने काम किया था वे एमएफसी और फिर डब्ल्यूटीएल थे। उन्होंने कहा कि एमएफसी अब कुछ भी आधुनिक नहीं है लेकिन डब्ल्यूटीएल का अभी भी उपयोग किया जाता है लेकिन वह ज्यादा नहीं जानता था। उन्होंने यह भी कहा कि डब्ल्यूटीएल आधुनिक नहीं था और इससे पहले कि उन्होंने शुद्ध विंडोज एपीआई में प्रोग्राम किया था।सी ++ में आधुनिक विंडोज सॉफ्टवेयर कैसे लिखें?

विंडोज विस्टा या विंडोज 7 के लिए कोई सॉफ्टवेयर कैसे लिखता है? क्या आप अभी भी डब्ल्यूटीएल का उपयोग करते हैं? एमएफसी और शुद्ध विंडोज एपीआई के बारे में क्या? या अब वहाँ अन्य पुस्तकालय हैं?

मुझे इसके बारे में बहुत कुछ पता नहीं है, लेकिन सी # या अन्य .NET भाषाओं ने आधुनिक विंडोज सॉफ्टवेयर लिखने में सी ++ को बदल दिया है?

उत्तर

13

क्या मैं पिछले कई वर्षों में देखा है से:

  • WTL एक जीवन रेखा पर है। माइक्रोसॉफ्ट द्वारा छोड़ा गया, प्रशंसकों द्वारा उठाया गया और कई बहुत ही समर्पित अनुयायी थे। बहुत साफ है, लेकिन सीखने की अवस्था खड़ी है और प्रशंसक आधार कम हो रहा है। याहू समूह बहुत सक्रिय नहीं है। मैं इसकी सिफारिश नहीं कर सकता।

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

  • wxwidgets अभी भी आसपास है। कोई व्यक्तिगत अनुभव नहीं, लेकिन भगवान, मैंने जो कुछ चिकित्सकों से सुना है, वे तूफान को कुचलने लगे हैं। असली कड़वा सामान भी।

  • क्यूटी काफी समय से आसपास रहा है लेकिन विशेष रूप से पिछले वर्ष में काफी हद तक स्ट्रीम उठाया गया है। जो भी इसका उपयोग करता है वास्तव में इसे पसंद करता है। यह यूआई क्लास लाइब्रेरी की सीमाओं से परे आगे बढ़ रहा है, उनके उपयोगकर्ता सामान्य प्रोग्रामिंग कार्यों के समाधान के लिए सक्रिय रूप से देख रहे हैं जो पत्र क्यू से शुरू होते हैं। यह आत्मविश्वास का एक शक्तिशाली वोट है।

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

+1

मैं डब्ल्यूपीएफ पर एक नज़र डालने जा रहा हूं। धन्यवाद! – bodacydo

+1

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

+2

मैं हर समय क्यूटी का उपयोग करता हूं और यह वास्तव में है जहां आधुनिक सी ++ विकास चालू है। –

9

Qt पर एक नज़र डालें - आपको यह पसंद हो सकता है। बेशक आप एक गैर पोर्टेबल संस्करण कुछ पसंद करते हैं। लेकिन अगर आप ओएस एक्स, लिनक्स, फोन, पर निर्माण करने की योजना नहीं बनाते हैं ... क्यूटी फ्रेमवर्क अच्छी तरह से लिखा गया है, अच्छी तरह से प्रलेखित है और बस काम करता है। एसडीके में अब एक अच्छा आईडीई (क्यूटी निर्माता) भी शामिल है।

+0

+1 क्यूटी निर्माता के लिए - चारों ओर सबसे अच्छा आईडीई। –

11

WTL,Qt,wxWidgets बहुत आम उपयोग किया जाता है।

  • वे सब तेजी से जीयूआई विकास की अनुमति है और बहुत बहुमुखी (तीसरा विकल्प है, मेरे मन को, और अधिक समय के लिए इस्तेमाल किया पाने के लिए लेता है) कर रहे हैं। दूसरे और तीसरे विकल्प वास्तव में अच्छे हैं क्योंकि वे क्रॉस-प्लेटफ़ॉर्म हैं।

  • शुद्ध विनैपी में विंडोज़ लिखना बेहद पुरानास्कूल है लेकिन कभी-कभी मनोरंजक हो सकता है।

  • C# खिड़कियों के निर्माण के लिए दृष्टिकोण पिछले विकल्पों की तुलना में तीव्र है, लेकिन थोड़ा कम लचीला है।

2

.NET (सी #, वीबी.नेट, ...) में, जीयूआई प्रोग्रामिंग का अत्याधुनिक इस समय WPF है (WinForms को बदल रहा है)। .NET में संकलित कोड वास्तव में CIL है जिसे जेआईटी द्वारा रनटाइम पर देशी कोड में संकलित किया गया है। इसका लाभ यह है कि आपको 64 या 32 बिट लक्ष्य प्रणालियों की परवाह नहीं है।

सी ++ में, क्यूटी एक अच्छा समाधान प्रतीत होता है क्योंकि यह साफ़ रूप से डिज़ाइन किया गया है और सेवाओं का एक बड़ा समूह प्रदान करता है। क्यूटी में जो नापसंद है वह इसकी संकलन राउंड ट्रिप है, यह बहुत धीमी है, एक कॉम्पलर, कंपाइलर है, फिर लिंक है, निष्पादन योग्य प्राप्त करने के लिए सी #/.NET की तुलना में उम्र लेता है। दूसरी ओर आप इसे एम्बेडेड सिस्टम में भी सामना कर सकते हैं, जो इस तरह के मामलों में दिलचस्प बनाता है।

मैं सलाह दूंगा कि कम से कम एक सी #/.NET देखें और निर्णय लेने से पहले इसका प्रयोग करें।

7

डब्ल्यूटीएल हर बार यदि आपका मुख्य प्लेटफॉर्म विंडोज है। Google क्रोम इसका उपयोग करता है, Spotify इसका उपयोग करें। यह सबसे अधिक उत्पादक, लचीला, संसाधन संसाधन नहीं है। लचीलापन से मेरा मतलब है कि आप इसका उपयोग शुद्ध Win32 API कोड/अन्य C++ कोड के साथ बहुत अधिक कठिनाई के बिना कर सकते हैं।

अधिक WTL जानकारी के लिए: collection of WTL links

2

मूल्यांकन करने के बाद मैं स्थिति है जहाँ शुद्ध Win32 या WTL एक ही रास्ता आधुनिक शैली जीत क्षुधा जो आधारित WRT नहीं कर रहे हैं लिखने के लिए है के लिए आया था।

नया रूप मुख्य बिंदु है। एमएफसी Win8 और Win10 पर विशेष रूप से इस फीचर पैक आंख कैंडी के साथ भयानक लग रहा है। शुद्ध एमएफसी अच्छा है लेकिन वसा और दृश्य-मॉडल भाग सिर्फ भयानक है और मुझे डब्ल्यूटीएल की तरह ही पसंद है। लेकिन यह अनियंत्रित है और यह इतना बुरा और डरावना है।

WxWidgets एक बदसूरत खिलौना है।

क्यूटी अब भी कोई विकल्प नहीं है। वे मोबाइल और ऐपफ्रेमवर्क पर बहुत अधिक ध्यान केंद्रित करते हैं। और यदि आप मैकॉक्स पर जाते हैं तो आप क्यूटी का उपयोग नहीं कर सकते हैं (हाँ यह दौड़ जाएगा लेकिन यह आपको यूएक्स के बारे में उल्टी बना देगा)।

WinRT इतना प्रतिबंधित है और सुविधाओं की कमी है जिसका आप इसका उपयोग नहीं कर सकते हैं। और आप यह सुनिश्चित कर सकते हैं कि यह विफल हो जाएगा क्योंकि कोई भी टैबलेट/फ़ोन पर WinStore या Windows का उपयोग नहीं कर रहा है। तो परवाह क्यों।

डब्ल्यूपीएफ ठीक है अगर आपको लगता है कि आप धीमी और वसा वाले ऐप्स की सराहना करते हैं। यह अच्छा दिखता है लेकिन सभी आंखों की कैंडी अब यूआई डिज़ाइन दिशानिर्देशों का हिस्सा नहीं है और विगेट्स के फीचर सेट Win32 देशी विजेट्स से कम है। बात अविश्वसनीय जरूर है, लेकिन सही है। और मैं आपको अयोग्य सी # का उपयोग करने में ताला लगाता हूं जो मेरी राय में बहिष्कृत है क्योंकि अब प्रदर्शन महत्वपूर्ण है (क्योंकि प्रदर्शन ऊर्जा है, जीवन का समय है)।

यहां तक ​​कि हर्ब सटर और अन्य उच्च रैंकिंग एमएस कर्मचारी आपको बताते हैं कि सी ++ भविष्य है। और अगला हत्यारा ऐप सी ++ 14 पर बनाया गया है और माइक्रोसॉफ्ट इसे जानता है।

+0

डब्ल्यूटीएल/विंडोज एपीआई कड़ी मेहनत कर सकती है लेकिन डेस्कटॉप के अन्य विकल्पों की तुलना में कम समेकित हो सकती है। डब्ल्यूटीएल दस्तावेज किया गया है और इसके आसपास एक अच्छा समुदाय है, डब्ल्यूटीएल अभी भी अपडेट किया गया है। यदि आप डब्ल्यूटीएल के साथ कुशल बनना चाहते हैं तो आपको कुछ हद तक स्वीकार करना होगा कि आपको विंडोज एपीआई सीखना है, लेकिन डब्ल्यूटीएल आपके लिए कड़ी मेहनत करता है। –

संबंधित मुद्दे