winapi सबस विंडोज़ के लिए प्रोग्रामिंग जीयूआई शुरू करने के लिए एक अच्छी जगह कहां है?




हनीमून प्लेस इन इंडिया in hindi (8)

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


अपनी मूल बातें पहले प्राप्त करें। मैंने पाया है कि सर्वश्रेष्ठ ट्यूटोरियल है: http://winprog.org/tutorial/start.html

उसके बाद, हालांकि मुखपृष्ठ घृणित रूप से अशिष्ट है, ट्यूटोरियल पेज सामग्री और सौंदर्यशास्त्र में अच्छे हैं: http://www.tenouk.com/cplusmfcdotnet.html

तो निश्चित रूप से MSDN


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

हाल ही में नेट पॉक्स पर एक अच्छा पॉडकास्ट था जिसे "केट ग्रेगरी डेवलपर्स के लिए सी ++ में विकसित करता है!" वहां पर वह सिफारिश करती है कि अब शुरू करने वाले किसी व्यक्ति को एमएफसी का उपयोग / सीखना नहीं चाहिए (भले ही इसे हाल ही में अपडेट किया गया हो)।

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


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


"इवेंट-संचालित" प्रकृति के आस-पास अपना सिर प्राप्त करने के लिए एक सरल प्रारंभिक बिंदु के लिए मूल रूप से सभी ढांचे को FLTK पर देखने के लिए बनाया गया है।

यहां कुछ त्वरित प्रारंभिक वीडियो Link दिए गए हैं

पेशेवर उपयोग के लिए मैं क्यूटी की महंगी सलाह देता हूं, लेकिन वाणिज्यिक परिस्थितियों में अक्सर इसका मूल्यवान होता हूं।


यह एक बड़ा सवाल है, क्योंकि विंडोज़ में प्रोग्रामिंग जीयूआई अनुप्रयोगों को कई तरीकों से किया जा सकता है।

किसी भी जीयूआई ऐप को विकसित करने के लिए दो मुख्य भाग हैं: भाषा और एपीआई / ढांचा । ध्यान दें कि आप विंडोज जीयूआई ऐप्स बनाने के लिए सीखने में रुचि रखते हैं, भाषा वास्तव में आपके लिए फोकस का मुद्दा नहीं है। इसलिए, आपको एक ऐसी भाषा चुननी चाहिए जिसे आप पहले से जानते हैं और एक ढांचे या एपीआई के साथ काम करते हैं जिसे आपकी चुनी भाषा द्वारा उपयोग किया जा सकता है।

यदि आप सी का उपयोग करना चाहते हैं तो आप Win32 एपीआई से निपटने के लिए काफी प्रतिबंधित हैं, इस मामले में Petzold या Richter को पढ़ने के लिए बहुत अच्छी जगह होगी। Win32 एपीआई काफी चुनौतीपूर्ण हो सकता है, लेकिन यह सीखने के प्रयास के लायक है (imho)। वेब पर Win32 पर बहुत सारे ट्यूटोरियल हैं, और Win32 API के पूर्ण संदर्भ / मार्गदर्शिका के साथ हमेशा MSDN होता है। सुनिश्चित करें कि आप केवल एपीआई को कवर नहीं करते हैं, बल्कि संसाधनों / संवाद जैसे अन्य क्षेत्रों को कवर करते हैं क्योंकि वे आपके Win32 एप्लिकेशन के लिए ब्लॉक बना रहे हैं।

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

एमएफसी और विन 32 एपीआई से निपटने पर, कोड लिखने से पहले शब्दावली की ठोस समझ को आजमाने और प्राप्त करने का एक अच्छा विचार है। उदाहरण के लिए, आपको समझना होगा कि संदेश पंप क्या है, और यह कैसे काम करता है। आपको अवधारणाओं के बारे में जानने की आवश्यकता है जैसे " owner-drawn नियंत्रण", और subclassing । जब आप इन चीजों को समझते हैं (और अधिक), तो आपको एमएफसी के साथ काम करना आसान लगेगा क्योंकि यह अपने वर्ग इंटरफेस में समान शब्दावली का उपयोग करता है (उदाहरण के लिए आपको यह जानने की जरूरत है कि "अनुवाद संदेश" का अर्थ क्या है, इससे पहले कि आप समझ सकें कि कैसे और कब PreTranslateMessage उपयोग PreTranslateMessage )।

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

तो यदि आप .NET का उपयोग करने जा रहे हैं , तो वर्तमान में आपके पास WinForms लाइब्रेरी, या WPF । मैं व्यक्तिगत रूप से महसूस करता हूं कि आप WinForms अनुप्रयोगों को बनाने के लिए सीखने में समय बर्बाद कर देंगे क्योंकि डब्ल्यूपीएफ को इसे बदलने के लिए डिज़ाइन किया गया है। समय के साथ डब्ल्यूपीएफ अधिक प्रचलित हो जाएगा और विनफॉर्म अधिकतर मर जाएंगे। डब्ल्यूपीएफ में एक बहुत ही समृद्ध एपीआई सेट है, और Winforms करता है कि कई सीमाओं से पीड़ित नहीं है। यदि आप इस मार्ग का चयन करते हैं, तो आपको XAML सीखना होगा, जो एक मार्कअप भाषा है जो WPF अनुप्रयोगों को चलाती है। यह तकनीक उम्र के आ रही है, और इसके बारे में जानने के लिए कई महान जगहें हैं। सबसे पहले, LearnWPF , और DrWPF जैसी साइटें हैं जिनमें कुछ वाकई बहुत अच्छे लेख हैं। दूसरा, इस topic पर plenty quality books topic

इसलिए, एक बार जब आप अपनी भाषा और तकनीक चुन लेते हैं, तो पथ वास्तव में काफी आसान है। बस एक किताब या दो उठाओ, कुछ ब्लॉग पढ़ें, कुछ कोड नमूने में जाओ .. और सबसे महत्वपूर्ण बात ... कोड लिखें। लिखते रहें, गलतियां करें, और उनसे सीखते रहें।

एक अंतिम नोट के रूप में ...

दूसरे शब्दों में, सिल्वरलाइट। यदि आप एमएस रूट नहीं जाना चाहते हैं तो आप एडोब के फ्लैश / फ्लेक्स को एक लुक देखेंगे। सिल्वरलाइट और फ्लैश / फ्लेक्स दोनों आरआईए का निर्माण करते हैं। जो मुझे लगता है वह है जहां हम आगे बढ़ रहे हैं। वे ऑफिस जैसे कार्यालयों के दिन गिने जाते हैं

मैं बिल्कुल सहमत नहीं हूं। सिल्वरलाइट WPF के समान नहीं है। सिल्वरलाइट वेब-विशिष्ट है, और केवल WPF की सुविधाओं का सबसेट है। यह देखते हुए कि सवाल विंडोज जीयूआई ऐप्स के लिए पूछता है, फ्लैश / फ्लेक्स रिच इंटरनेट ऐप वास्तव में एक उपयुक्त सुझाव नहीं हैं। मैं यह भी सहमत नहीं हूं कि रिच क्लाइंट एप्लिकेशन (जैसे कार्यालय) के दिन गिने गए हैं।

मुझे आशा है कि वह मदद करेंगे। सौभाग्य :)


मुझे नहीं पता कि मैं इसे शुरू करने के लिए एक अच्छी जगह कहूंगा, लेकिन यदि आप भविष्य में तैयार होना चाहते हैं, तो विंडोज प्रस्तुति नींव पर एक नज़र डालें जो पूरी तरह से विंडोज़ के लिए प्रोग्रामिंग जीयूआई के उद्देश्य से बनाया गया है


ऑनलाइन Win32 ट्यूटोरियल के बहुत सारे हैं:

http://www.zeusedit.com/forum/viewtopic.php?t=1218

इनमें से चुनने के लिए बहुत सारे कंपाइलर हैं:

http://www.zeusedit.com/forum/viewtopic.php?t=238

मैं WinHelp फ़ाइल प्रारूप में बोर्लैंड Win32 एसडीके दस्तावेज़ प्राप्त करने की भी सिफारिश करता हूं:

http://www.zeusedit.com/forum/viewtopic.php?t=7

यह केवल Win32 की नंगे मूलभूत बातें शामिल करता है, लेकिन जब शुरू होता है, तो यह सहायक हो सकता है क्योंकि यह एमएसडीएन की तुलना में कम कठिन और कम फूला हुआ है।


व्यावसायिक ऐप्स के लिए, विंडोज फॉर्म बहुत परिपक्व है। यह आपके लिए बहुत बढ़िया नियंत्रण प्रदान करने और अपने आप को घुमाए जाने के लिए ऑटो-जनरेटिंग से एक सौम्य मार्ग प्रदान करता है। वहां बहुत से उच्च गुणवत्ता वाले तृतीय पक्ष नियंत्रण और उदाहरणों, दस्तावेज़ों आदि का एक बड़ा निकाय है। किसी समस्या में भागना मुश्किल है जिसे किसी और ने हल नहीं किया है। मैं अत्यधिक पृष्ठभूमि Win32 ज्ञान (जैसे Petzold ) प्राप्त करने की अत्यधिक अनुशंसा करता हूं क्योंकि WinForms फ्रेमवर्क इसके शीर्ष पर रहता है।

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

@StephenCox: गलत सवाल का गलत जवाब। ओपी डेस्कटॉप क्लाइंट ऐप्स के बारे में पूछ रहा है, और इसके अलावा, डब्ल्यूपीएफ! = सिल्वरलाइट।





mfc