मैं Win32 एपीआई सीखने से पहले वर्षों के लिए मानक सी / सी ++ पर रखा, और काफी धब्बेदार होने के लिए, "सीखना Win32 एपीआई" भाग मेरे जीवन का सबसे अच्छा तकनीकी अनुभव नहीं है।
एक तरफ Win32 एपीआई काफी अच्छा है। यह सी मानक एपीआई (जिसे fopen
की आवश्यकता होती है, के विस्तार की तरह है, जब आपके पास CreateFile
हो सकता है। लेकिन मुझे लगता है कि यूनिक्स / लिनक्स / जो भी होसोज़ में एक ही gizmo फ़ंक्शन हैं। वैसे भी, यूनिक्स / लिनक्स, उनके पास "सबकुछ एक फ़ाइल है"। विंडोज़ में, उनके पास "सबकुछ एक है ... विंडो" (कोई मजाक नहीं है! CreateWindow
!) देखें।
दूसरी ओर, यह एक विरासत एपीआई है। आप कच्चे सी, और कच्चे सी पागलपन से निपटेंगे।
- किसी की संरचना को अपने स्वयं के आकार को कुछ कोड 32 फ़ंक्शन पर
शून्य *
पॉइंटर से गुज़रने के बारे में बताएं।
- संदेश बहुत भ्रमित हो सकता है, भी: Win32 विंडोज़ के साथ सी ++ ऑब्जेक्ट्स को मिलाकर चिकन के बहुत ही रोचक उदाहरण होते हैं या अंडे समस्या (मजाकिया क्षण जब आप एक प्रकार का
इसे हटाएं;
कक्षा विधि में) लिखते हैं।
- जब आप ऑब्जेक्ट विरासत से अधिक परिचित होते हैं तो WinProc को उपclass करना हेड-स्प्लिटिंग और इष्टतम से कम है।
- और निश्चित रूप से, " इस भयानक दुनिया में क्यों उन्होंने इस तरह से काम किया है ?? " क्षण जब आप अपने सिर के साथ अपने कीबोर्ड के साथ कई बार एक बार फिर से घर वापस आते हैं चाबियाँ आपके माथे में उत्कीर्ण होती हैं, सिर्फ इसलिए कि किसी ने "विंडो" के रंग को बदलने में सक्षम होने के लिए एपीआई लिखने के लिए और अधिक तार्किक माना है, न कि इसकी एक संपत्ति को बदलकर, बल्कि इसे अपनी मूल विंडो से पूछकर।
- आदि।
आखिरी हाथ में ( तीन हाथ ??? ), मान लीजिए कि विरासत एपीआई के साथ काम करने वाले कुछ लोग स्वयं विरासत कोड स्टाइल का उपयोग कर रहे हैं। जिस क्षण आप सुनते हैं " const
डमी के लिए है " या " मैं नामस्थान का उपयोग नहीं करता क्योंकि वे रनटाइम गति को कम करते हैं ", या यहां तक कि बेहतर " अरे, जिसने सी ++ की आवश्यकता है? मैं ऑब्जेक्ट उन्मुख सी के अपने ब्रांड में कोड !!! " (कोई मजाक नहीं ... एक पेशेवर वातावरण में, और परिणाम काफी दृष्टि थी .. ।), आप इस तरह के डर को महसूस करेंगे कि केवल guillotine ।
तो ... सब कुछ, यह एक दिलचस्प अनुभव है।
संपादित करें
इस पोस्ट को फिर से पढ़ने के बाद, मुझे लगता है कि इसे अत्यधिक नकारात्मक के रूप में देखा जा सकता है। यह नहीं।
यह कभी-कभी दिलचस्प है (साथ ही निराशाजनक) यह जानने के लिए कि चीजें हुड के नीचे कैसे काम करती हैं। आप समझेंगे कि, भारी (असंभव?) बाधाओं के बावजूद, Win32 API टीम ने आपके "अंतिम Win64 ओवर-द-टॉप एप्लिकेशन" में "पुराना Win16 प्रोग्राम" से सब कुछ सुनिश्चित करने के लिए अद्भुत काम किया है, एक साथ काम कर सकता है, अतीत में, अब, और भविष्य में।
सवाल यह है: क्या आप वास्तव में करना चाहते हैं?
क्योंकि कुछ और उच्च स्तर और / या ऑब्जेक्ट उन्मुख एपीआई में किए जा सकने वाले काम करने के लिए हफ्तों का खर्च करना काफी कठिन हो सकता है (वास्तविक जीवन अनुभव: विन एपीआई के लिए 3 सप्ताह, तीन में 4 घंटे के खिलाफ अन्य भाषाओं और / या पुस्तकालय)।
वैसे भी, आपको रेमंड चेन का ब्लॉग बहुत ही रोचक लगेगा क्योंकि विन एपीआई और उसके विकास दोनों वर्षों में उनके अंदरूनी विचारों के बारे में:
https://blogs.msdn.microsoft.com/oldnewthing/