2009-01-28 15 views
23

मैं एक छोटे सी ++/win32 एपीआई परियोजना (विजुअल स्टूडियो सी ++ 2008 काम कर रहा) के लिए जीयूआई विकसित करने का निर्णय ले रहा हूं। इस परियोजना को मुख्य प्रक्रिया को शुरू करने के लिए केवल कुछ घटकों की आवश्यकता होगी, इसलिए यह बहुत हल्का वजन होगा (केवल 1 बटन और एक टेक्स्ट बॉक्स बहुत अधिक ...)। मेरा सवाल यह है:मैं सी ++ का उपयोग कर विंडोज़ एप्लिकेशन के लिए जीयूआई कैसे बना सकता हूं?

मुझे विंडोज़ पर जीयूआई विकसित करने का अनुभव नहीं है लेकिन मैं आसानी से सीख सकता हूं। तो, मुझे क्या उपयोग करना चाहिए? एक विजुअल एडिटर (ड्रैग और ड्रॉप कोड पीढ़ी: डेस्कटॉप जीयूआई के लिए मेरी वरीयता दूर तक (जावा/स्विंग))। या मैं एक speicific पुस्तकालय का उपयोग करना चाहिए? किसी भी तरह से, पुस्तकालय या दृश्य संपादक का उपयोग करना चाहिए? मैंने सुना है कि किसी ने सी # में जीयूआई लिखने का उल्लेख किया है, फिर सी ++ कोड को बुलाया है ... बात यह है कि यह इतना आसान जीयूआई है, मुझे इसे सभी को सी ++ में रखना आसान लगेगा, लेकिन मैं जो कुछ भी खोलता हूं, उसके लिए मैं खुला हूं सबसे अच्छा सुझाव है।

उत्तर

12

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

एमएफसी दिनांकित है और इसमें परेशानियों का उचित हिस्सा है, लेकिन यदि आप बस एक बटन और एक टेक्स्ट बॉक्स के बारे में बात कर रहे हैं तो यह निश्चित रूप से आपके लिए काम करेगा।

मुझे क्यूटी के साथ कोई अनुभव नहीं है, इसलिए मैं दोनों की तुलना नहीं कर सकता।

15

अब तक का सबसे अच्छा सी ++ जीयूआई लाइब्रेरी Qt है, यह व्यापक, सीखने में आसान, वास्तव में तेज़ और बहु-प्रारूप है।

आह, यह हाल ही में एक LGPL लाइसेंस मिला है, इसलिए अब आप इसे मुक्त करने के लिए आप एक बहुत ही सरल जीयूआई कर रहे हैं डाउनलोड कर सकते हैं और वाणिज्यिक कार्यक्रमों

+0

v4.5 एलजीपीएल लाइसेंस प्राप्त होगा, लेकिन यह अभी तक जारी नहीं हुआ है। – sth

+1

क्यूटी का प्रमुख लाभ यह है कि यह क्रॉस-प्लेटफॉर्म है। आपको नहीं लगता कि आपको अब इसकी आवश्यकता है, लेकिन लाइन के नीचे कुछ साल तक प्रतीक्षा करें और आप पोर्ट करना चाहते हैं ... यदि आप क्यूटी के साथ गए हैं तो आप हँसेंगे। – jkp

+2

क्रॉस-प्लेटफ़ॉर्म कोड लिखना सिर्फ इसलिए कि आप कुछ वर्षों में _might_ कई प्लेटफ़ॉर्म पर चलाना चाहते हैं, ऐसा करने का एक भयानक कारण है। एक से अधिक प्लेटफॉर्म के लिए लिखित कोड में महत्वपूर्ण विकास ओवरहेड है और आपको ऐसा नहीं करना चाहिए जब तक कि आपके पास ऐसा करने के लिए बहुत अच्छा व्यवसाय मामला न हो। –

2

नोकिया से क्यूटी निश्चित रूप से जाने का तरीका है। एक और विकल्प gtk है, लेकिन क्यूटी बेहतर समर्थित और दस्तावेज है। किसी भी तरह से, वे दोनों स्वतंत्र हैं। और उनमें से दोनों व्यापक रूप से उपयोग और जाने जाते हैं इसलिए आपके प्रश्नों के उत्तर ढूंढना आसान है।

3

बस एक नया एमएफसी सी ++ ऐप बनाएं। यह बहुत आसान है, और दुनिया में हजारों उदाहरण मौजूद हैं ...

प्लस, आप विजुअल स्टूडियो में अपने संवाद बॉक्स को डिज़ाइन कर सकते हैं, उन्हें परिवर्तनीय नाम दे सकते हैं, और 90% कोड आपके लिए जेनरेट किया गया है ।

2

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

चार्ल्स पेटज़ोल्ड या कुछ ऑनलाइन ट्यूटोरियल (उदाहरण के लिए http://www.winprog.org/tutorial/) द्वारा क्लासिक "प्रोग्रामिंग विंडोज" देखें और आप जाने के लिए तैयार हैं।

1

यदि आप Win32 के बारे में जानना चाहते हैं, तो डब्ल्यूटीएल http://wtl.sourceforge.net/ एमएफसी के बराबर हल्का हल्का है, लेकिन आपको इसका उपयोग करने के लिए टेम्पलेट से प्यार करना होगा।

यदि आप चाहते हैं कि कुछ आसान एमएफसी पहले से ही वीएस के साथ एकीकृत हो, तो इसके पास नेट में पहले से ही पता चलने वाले बग के अतिरिक्त कोड और कामकाज का एक बड़ा आधार है।

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

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

7

मैं बस माइक्रोसॉफ्ट विजुअल स्टूडियो का उपयोग करके और मूल Win32 ऐप लिखना पसंद करता हूं।

एक जीयूआई के लिए जितना सरल है उतना सरल के लिए, आप बस Dialog Box बना सकते हैं और इसे अपनी मुख्य एप्लिकेशन विंडो के रूप में उपयोग कर सकते हैं। विजुअल स्टूडियो में Win32 प्रोजेक्ट विज़ार्ड द्वारा बनाया गया डिफ़ॉल्ट एप्लिकेशन वास्तव में एक विंडो पॉप करता है, ताकि आप अपने डायलॉग बॉक्स के साथ उस विंडो को replace कर सकें और WNDProc को एक समान (लेकिन सरल) DialogProc से प्रतिस्थापित कर सकें।

प्रश्न, फिर, उपकरण और लागत में से एक है। विज़ुअल सी ++ के Express Edition वास्तव में संवाद टेम्पलेट संसाधन को छोड़कर आप जो कुछ भी चाहते हैं वह करता है। इसके लिए, आप इसे RC file by hand या in memory by hand में कोड कर सकते हैं। संबंधित SO प्रश्न: Windows API Dialogs without using resource files

या आप free resource editors में से किसी एक को आजमा सकते हैं जिसकी सिफारिश की गई है।

अंत में, Visual Studio 2008 Standard Edition एक महंगा विकल्प है लेकिन आपको एक एकीकृत संसाधन संपादक देता है।

3

मैं दृढ़ता से सादा Win32 का उपयोग करने के खिलाफ सलाह देता हूं क्योंकि यह सभी परिस्थितियों में ठीक काम करने के लिए बहुत कठिन है, यह बहुत सुस्त और कठिन काम है और सामान्य नियंत्रण पुस्तकालय पूर्ण नहीं है। इसके अलावा, अधिकांश काम आपके लिए किया गया है।

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

हल्के टूलकिट के रूप में मैं omgui का सुझाव दूंगा जिसमें एक साफ और सुंदर एपीआई है। हालांकि, यह किसी भी उपकरण के साथ नहीं आता है।

यदि आपको उपकरण समर्थन की आवश्यकता है, तो आप शायद एमएफसी (विजुअल स्टूडियो में निर्मित संसाधन संपादक) या क्यूटी के लिए जाना चाहेंगे। मुझे नहीं पता कि WxWidgets के पास कोई उपकरण है, लेकिन मुझे लगता है कि यह है।

संपादित करें: डेविड सिट्रन, कहा गया है कि जाहिरा तौर पर दृश्य स्टूडियो में संसाधन संपादक Win32 संगत संसाधन फ़ाइलों को उत्पन्न करता है ताकि शायद अगर आप चीजों को सरल रखना चाहता काम करने के लिए पसंदीदा तरीका है।

+1

वीएस में निर्मित संसाधन संपादक सादे पुराने Win32 के साथ संगत संसाधनों को उत्पन्न करता है। –

+0

यह करता है? अब आप मुझे बताओ: - /, शायद यह मेरे जीवन के कई सालों से बचा होगा। –

0

कुछ पाठ और बटन के साथ एक साधारण "विंडो" बस एक संदेशबॉक्स है। आप उन्हें एक फंक्शन कॉल के साथ बना सकते हैं; आपको किसी भी पुस्तकालय की आवश्यकता नहीं है।

3

क्यूटी (noobs के लिए) या किसी भी बेकार पुस्तकालयों (एक ऐसी बुनियादी बात के लिए बेतुका)

बस वी.एस. Win32 एपीआई जादूगर, विज्ञापन बटन और पाठ बॉक्स का उपयोग से बचें ... और बस!

25 सेकंड में!

+5

मुझे यह win32 api विज़ार्ड कहां मिल सकता है? – Zombies

0

मैंने छोटी परियोजना के लिए wxwidgets का उपयोग किया है और मुझे यह पसंद आया। क्यूटी एक और अच्छी पसंद है लेकिन वाणिज्यिक उपयोग के लिए आपको शायद एक लाइसेंस खरीदने की आवश्यकता होगी। यदि आप सी ++ में लिखते हैं तो Win32 API का उपयोग न करें क्योंकि आप इसे ऑब्जेक्ट उन्मुख बना देंगे। यह आसान और समय लेने वाला नहीं है। इसके अलावा Win32 एपीआई में बहुत सारे मैक्रोज़ हैं और यह जो ऑफर करता है उसके लिए जटिल पर लगता है।

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

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