2009-01-12 16 views
15

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

मैं कभी भी एमएफसी का बड़ा प्रशंसक नहीं रहा हूं (पहली बार मैंने वीएस 6.0 दिनों में इसके साथ खेला था), लेकिन तब से इसे नज़रअंदाज़ नहीं किया है।

मुझे कुछ विशेषज्ञों से सुनने में रूचि है, जिनके पास आईडीई दोनों के साथ अनुभव है, चाहे वे सबसे हाल के संस्करण हैं या नहीं।

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

कोई भी सी ++ गुरु वहां अपनी राय साझा करना चाहते हैं?

EDIT: मुझे समझ में आता है कि एमएफसी विजुअल स्टूडियो के लिए एकमात्र गुई टूलकिट नहीं है। हालांकि, मैं जीयूआई टूलकिट + आईडीई के आधार पर कुछ सिफारिशों की तलाश में हूं। सी ++ बिल्डर के लिए, केवल 1 वास्तविक विकल्प है, जो सी ++ बिल्डर + वीसीएल है। वीएस 2008 के लिए, यह वीएस + एमएफसी/एटीएल/डब्ल्यूटीएल/क्यूटी .... मेरे लिए भ्रमित है क्योंकि मुझे उनके बारे में ज्यादा जानकारी नहीं है।

उत्तर

15

डेल्फी से आ रहा है, तो आप सीसी + बिल्डर के साथ उपयोग करने के लिए सीधे वीसीएल पाएंगे। कुछ विषमताएं हैं, जैसे सी ++ इस तथ्य को छिपाता नहीं है कि टॉब्जेक्ट्स वास्तव में पॉइंटर्स हैं (जो डेल्फी आपके से छिपाते हैं), और कुछ चीजें जैसे सरणी गुणों को अलग-अलग एक्सेस किया जाता है।

दो या तीन साल पहले, मैं सी ++ बिल्डर से किसी भी तरह की तलाश कर रहा था, लेकिन अब हालिया रिलीज (और एम्बरकेडेरो की कोडगियर की खरीद) के साथ, मैं उत्पाद और दिशा से खुश हूं।

आपको स्ट्रिंग प्रकारों की संख्या और सी ++ बिल्डर के साथ मिश्रित संभावित असंगतताओं की संख्या मिल जाएगी, लेकिन आप इसका उपयोग करेंगे! (std :: string, char [], wchar_t [], tCHAR, AnsiString, वाइडस्ट्रिंग, यूनिकोडस्ट्रिंग और स्ट्रिंग कुछ नाम देने के लिए)

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

13

विजुअल स्टूडियो और एमएफसी समान नहीं हैं। मैं हर समय स्टूडियो का उपयोग करता हूं और मैं प्लेग की तरह एमएफसी से बचता हूं। आप एमएफसी के बिना ऐप्स बनाने के लिए डब्ल्यूटीएल, एटीएल, विन 32 या पुस्तकालयों की किसी भी संख्या का उपयोग कर सकते हैं।

+0

यदि आप एमएफसी का उपयोग नहीं कर रहे हैं, तो आप कौन सी अन्य जीआईआई पुस्तकालय पसंद करते हैं? WTL के लिए – Mick

+3

+1। यह आधिकारिक समर्थित नहीं है, लेकिन मैंने कभी भी सबसे अच्छा जीयूआई लिब में से एक (वीसीएल के बाद तीसरा, टर्बोविजन के बाद दूसरा) –

+0

आमतौर पर डब्ल्यूटीएल (हालांकि मैं सीधे एमआईएफसी चुनने से पहले सीधे Win32 का उपयोग करता हूं या अपना खुद का रोल करता हूं) – ctacke

2

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

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

10

सरल जवाब यह है कि शुद्ध सी ++ विकास के लिए इसे वीसी ++ होना चाहिए।

विस्तार करने के लिए: शुद्ध सी ++ विकास वातावरण के रूप में आप बस वीसी ++ को हरा नहीं सकते हैं, डीबगर बेहतर है, आईडीई बेहतर है (बिल्कुल सभी आईएमएचओ)।मैंने उन पुस्तकालयों को विकसित करने के लिए उपयोग किया है जिन्हें मैं इन कारणों से सी ++ बिल्डर से उपयोग करता हूं।

हालांकि एक बार जब आप यूआई विकास में शुरू होते हैं, या वीसीएल या घटकों का उपयोग करके आप हल कर सकते हैं तो कुछ भी बेहतर विकल्प है। वीसीएल की तुलना में, एमएफसी या एटीएल तुलनात्मक रूप से भयानक हैं, और इसलिए आपको .NET का उपयोग करने के लिए छोड़ दिया जाता है, जो शायद एक बेहतर विकल्प है, लेकिन

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

+1

क्या आपका मतलब है मुफ्त संस्करण (विजुअल स्टूडियो एक्सप्रेस) भी? मैंने इसे बहुत सीमित पाया। –

1

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

5

मैंने सी ++ बिल्डर का उपयोग वर्षों से नहीं किया है, लेकिन सी ++ डिबगिंग के विषय पर, विजुअल स्टूडियो 2008 अन्य आईडीई और पिछले वीएस के सामने है, खासकर अगर आप एसटीएल कंटेनर का उपयोग करते हैं क्योंकि यह उनके निरीक्षण का बहुत आसान बनाता है सामग्री।

हालांकि, जीयूआई पक्ष पर, सी ++ अब माइक्रोसॉफ्ट के लिए दूसरी श्रेणी की भाषा है। भविष्य का तरीका डब्ल्यूपीएफ और C++ is not supported as a XAML-friendly language: हम डेवलपर्स को सी ++/सीएलआई में निवेश करना जारी रखेंगे ताकि डेवलपर्स को मूल दुनिया में मूल सी ++ संपत्तियों का पर्दाफाश करने में सक्षम बनाया जा सके और इसके विपरीत। हमारा मानना ​​है कि शुद्ध .NET विकास को .NET केंद्रित भाषा जैसे सी # या वीबी का उपयोग करके सबसे अच्छा किया जाता है। सी ++/सीएलआई में निवेश मुख्य रूप से देशी-प्रबंधित इंटरऑप क्षेत्रों में होगा।

तो, बनाने के लिए एक आधुनिक दिखने सी ++ जीयूआई, आपका सबसे अच्छा विकल्प वास्तव में VCL हो सकता है - अगर VCL इस तरह संभव ;-)

2

बस इसके बारे में नरक के लिए, हम कर सकते हैं फेंक कर रहा है मिश्रण में ग्रहण में भी?
मुझे दृश्य स्टूडियो में काम करने से बेहतर होने के लिए ग्रहण में काम करना पड़ा।

जब तक आप Winforms के साथ VS2008 का उपयोग नहीं कर रहे हैं, तो गुई समर्थन विंडोज टेम्पलेट्स (आमतौर पर संसाधनों से) है जो पुरानी टोपी है और आप शायद इसका उपयोग नहीं करना चाहते हैं। तो वीएस -2008 में गुई समर्थन विशेष नहीं है।

जीयूआई टूलकिट का सवाल है, शायद आखिरी सी ++ बिल्डर के बारे में What is a good GUI/widgets toolkit

1

एक बात को देखने के CodeGear द्वारा - मेरा मतलब है 2009 संस्करण - कि इसकी अद्यतन वास्तव में आप इस आईडीई नफरत कर सकते हैं।
दूसरे अपडेट को स्थापित करने के बाद, मुझे पता चला कि अगर/अन्य ब्लॉक डोनेट काम को उचित रूप से ब्लॉक करते हैं। यह आईएफ स्टेटमेंट दर्ज कर सकता है लेकिन एक और दर्ज नहीं कर सकता - और यह स्थिति पर निर्भर नहीं है - इस भाषा निर्देश ने बिल्कुल काम बंद कर दिया है। मुझे यह समझने में लगने वाला समय लगभग दो या तीन घंटे था - और मैंने वीएस में आवश्यक Win32 ऐप विकसित करना शुरू किया, मुझे लगता है कि यह कोडगियर उत्पाद से अधिक विश्वसनीय है। दूसरी सुविधा मुझे नापसंद है कि आप यूनिकोड समर्थन को बंद नहीं कर सकते हैं और Win32 फ़ंक्शंस के एएनएसआई संस्करणों का उपयोग करना होगा (उदा। SendMessageA (...)) जो बहुत उबाऊ है। मैं वीएस -2008 का उपयोग करके नौकरी खत्म करने के लिए समय सीमा को पूरा करता हूं।
यह सिर्फ मेरा अनुभव है, बनाने का विकल्प आपका है

+0

क्या आपके पास/अन्य समस्या के लिए एक क्यूसी रिपोर्ट संख्या है? – Roddy

+4

इसके अलावा, आप के लिए "TCHAR = चार" विकल्प सेट करते हैं, तो आप एएनएसआई Win32 कॉल मिल जाएगा। वाइड Win32 कॉल के लिए इसे "wchar_t" पर सेट करें। wxWidgets की तरह – Roddy

6

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

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

बिल्डर आपको क्या देता है? एक उचित जीयूआई पुस्तकालय। खैर, यह अच्छा है लेकिन वहां कई अन्य सभ्य जीयूआई टूलकिट हैं (WxWidgets, GTK, QT आदि)। कई खुले स्रोत और क्रॉस-प्लेटफॉर्म हैं।

हालांकि, इन दिनों मुझे एपीआई प्रदान करने के लिए अपने अनुप्रयोगों को पुन: स्थापित करना बेहतर लगता है और फिर एक अलग भाषा में इसके ऊपर जीयूआई का निर्माण करना बेहतर होता है। जीयूआई विकास में सी ++ की ताकत नहीं है। कम से कम आज नहीं ...

मैं चयन करता हूं - और अनुशंसा करता हूं - बिल्डर पर वीएस।

2

ठीक है, आप ग्रहण + MinGW + क्यूटी 4 + क्यूटी ग्रहण एकता का उपयोग कर सकते हैं और आप सामान के सभी मिलती है: डिबगर, दृश्य जीयूआई डिजाइनर, आदि

मन कि क्यूटी 4 लाइसेंस प्राप्त दोहरी है: ओपेन सोर्स और वाणिज्यिक लाइसेंस ।

इसके अलावा आप विजुअल स्टूडियो (एक्सप्रेस के साथ भी) के साथ क्यूटी 4 को जोड़ सकते हैं और सभी अच्छे वीएस का उपयोग कर सकते हैं।

मेरे लिए Qt4 जाने का तरीका है और बिल्डर पर वीएस है।

1

मुझे दो साल पहले सी ++ बिल्डर पसंद था। यह शानदार था। यह वीसीएल की तुलना में वीसीएल के साथ अपने क्रैपी एमएफसी के साथ बेहतर तरीका था। फिर हर साल चीजें बदल रही हैं।

बिल्डर नीचे जा रहा है; 1. बिल्डर को किसी भी वास्तविक कार्यक्षमता के साथ अद्यतन नहीं किया गया है। 2. बोर्लैंड ने किलिक्स और बिल्डर के साथ उपयोग के लिए सी ++ में वीसीएल को फिर से लिखने के विचार को त्याग दिया 3. कोड गियर गड़बड़ और बिल्डर के अनिश्चित भविष्य ने उत्पाद से कई लोगों को हटा दिया।

वीएस बेहतर हो रहा है; 1. आईडीई को में सुधार किया गया है 2. विंडोज प्लेटफ़ॉर्म पर कम से कम मानक-अनुपालन वाले से कंपाइलर सबसे मानक-अनुरूप (कोर्स के न्यूनतम जीजी पर जीसीसी की गणना नहीं) 3. .NET उभरा और प्रबंधित सी ++ था और फिर सी ++/सीएलआई सी ++

से हमें इस ढांचे का उपयोग करना संभव बनाने के लिए हमें नए, मजबूत खिलाड़ी प्राप्त हुए 1. ग्रहण 2।क्यूटी निर्माता

और नए जीयूआई उपकरणकिटें

  1. wxWidgets
  2. क्यूटी 4 अब भी ओपन सोर्स लाइसेंस

संक्षेप में प्रस्तुत करना पड़ता है; बिल्डर मर चुका है क्योंकि बोर्लेन्ड

  1. सोच रहा था डेल्फी बहुत बढ़िया वे वास्तव में पैसे कमाने के लिए
  2. जावा प्रचार में गिर गया और उस में बहुत अधिक संसाधनों का निवेश किया है
  3. समझ में नहीं आया और कुछ की आवश्यकता नहीं है सी की महान शक्ति ++ और बजाय पास्कल को, जो हमेशा साथ यह
+0

क्यूटी सच देशी बंदरगाहों जरूरत नहीं है। इसका मतलब यह है कि क्यूटी उन्हें काफी यथार्थवादी रूप से खींचती है, क्यूटी प्रत्येक मंच पर अपने स्वयं के विजेट खींचती है। (http://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits#Qt) – Mick

+0

"1. बिल्डर को किसी भी वास्तविक कार्यक्षमता के साथ अपडेट नहीं किया गया है" यह 2004 में सच था, जब ऐसा लगता था कि बोर्लैंड सी ++ बिल्डर को हटा देगा और जाओ इसके बजाय सी ++ बिल्डरएक्स के साथ। कई चीजें तब से हुई हैं (सी ++ बिल्डर 2006, 2007, 200 9)। –

3

सी ++ बिल्डर बनाया कोई वास्तविक उत्पादों के साथ शैक्षिक भाषा में किया गया है ढेर MS-वी.एस. की तुलना में कहीं बेहतर है जब यह आधारित विकास और डेटाबेस उन्मुख एप्लिकेशन UI करने के लिए आता है। एमएफसी बेकार !! हालांकि वीएस में बेहतर डिबगिंग क्षमताएं हैं।

0

2012 लगभग समाप्त हो रहा है। मैं बोर्लैंड सी ++ उपयोगकर्ता था और फिर वीसी ++ 6.0 पर स्विच किया गया। हाल ही में एक ग्राहक से एक आवश्यकता थी जो अपने उत्पाद के लिए जीयूआई अंत चाहता था और .NET ढांचे पर निर्भरता नहीं चाहता था। तो मैंने Embarcadero आरएडी स्टूडियो XE2 की खोज की।

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

मुझे वीसी ++ में डीएलएल बनाकर और सी ++ बी फ्रंटेंड से कॉल करके समाधान मिला। जो दोनों का सर्वश्रेष्ठ प्रदान करता है।

मुझे उम्मीद है कि एम्बरकाडेरो जल्द ही मानकों के साथ पकड़ लेगा।

1

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

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