Win32 API का विकास [बंद]


11

क्या समय के साथ विंडोज 32 एपीआई बहुत बदल गया है? क्या 1998 से चार्ल्स पेटज़ोल्ड पुस्तक "प्रोग्रामिंग विंडोज, 5 वें संस्करण" में अभी भी प्रासंगिक जानकारी है, या यह अप्रचलित / पुरानी है?

विंडोज 32 एपीआई (यदि कोई हो) के हालिया परिवर्धन के कुछ प्रमुख उदाहरण क्या हैं?

जवाबों:


4

विंडोज विस्टा में नया थ्रेड पूल एपीआई WinAPI कैसे विकसित हुआ है, इसका एक सरल उदाहरण के लिए एक अच्छी तरह से लिखित कई थ्रेड प्रोग्रामों के लिए एक गंभीर सुधार और सहायता है। हालाँकि, संगतता बनाए रखने की आवश्यकता Windows API की मूल बातें समान रखने के लिए एक ड्राइविंग कारक रही है और इसके परिणामस्वरूप CreateWindowEx जैसे पूर्व कार्यों की प्रबलता जैसी कुछ गैर-आदर्श चीजें हैं। 64bit विंडोज के खिलाफ अभी भी कार्य करने योग्य हैं जो 16bit कार्यक्रमों के साथ संगतता के लिए हैं।

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

इसके अलावा, सही संदर्भ विंडोज एपीआई है, विंडोज 32 एपीआई नहीं, क्योंकि एक ही एपीआई विंडोज 32 और विंडोज 64 दोनों को नियंत्रित करता है।


3

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

विशिष्ट नए एपीआई हैं, जैसे सेटअप एपीआई , थ्रेड पूल एपीआई और जीडीआई + , और विस्टा के संदर्भ में 7 और यूएसी के संदर्भ में काम करने जैसे नए विषय हैं। कई अलग-अलग नए कार्य भी हैं, जो पेट्ज़ोल्ड कवर नहीं करता है, लेकिन आवश्यकतानुसार MSDN पर नए विषयों को देखना काफी आसान है। प्रोग्रामिंग विंडोज भी COM को कवर नहीं करता है, जो विंडोज प्रोग्रामिंग का एक बड़ा हिस्सा हो सकता है।

ध्यान रखें कि पेटीजोल को कवर करने वाला एपीआई सभी निम्न-स्तरीय और सी-आधारित है। (कुछ नए API हैं, जैसे GDI + और कुछ COM सामान, जो ऑब्जेक्ट-ओरिएंटेड हैं।) वस्तुतः कोई भी आधुनिक विकास ऑब्जेक्ट-ओरिएंटेड होगा और अक्सर .NET या Qt या डेल्फी के VCL जैसे फ्रेमवर्क का उपयोग करेगा, इसलिए आप 'शायद ही कभी पूर्ण अनुप्रयोग लिखें जो प्रोग्रामिंग विंडोज में उदाहरण कोड की तरह दिखते हैं ; हालाँकि, यह अभी भी समझाने के लिए बहुत अच्छा है कि हुड के नीचे क्या हो रहा है।

मैंने कुछ समय पहले चारों ओर देखा और कोई भी नया API संदर्भ नहीं मिला। मुझे संदेह है कि यह वर्तमान विंडोज एपीआई के विशाल आकार के कारण है; प्रोग्रामिंग विंडोज, 5 वें संस्करण पहले से ही लगभग 1500 पृष्ठ लंबा है, एक ऐसी पुस्तक जो कुछ भी नया कवर करती है वह बहुत बड़ी होगी। मुझे प्रोग्रामिंग विंडोज के लिए कुछ दिलचस्प दिखने वाले सप्लीमेंट्स मिले , हालाँकि मैंने उन्हें अभी तक नहीं पढ़ा है:

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

0

पिछले कुछ वर्षों में विंडोज एपीआई बदल गया है। : (उदा यह के कार्यों पूरी तरह से नया सेट जोड़ दिया जाता है TaskDialog मौजूदा कार्य (: पूर्व के लिए, और प्रतिस्थापन और परिवार) CreateWindowEx )।

मैं एक नए संदर्भ से परामर्श करने की सलाह दूंगा।


कोई सुझाव मिला?
गैबलिन २४'११

अफसोस की बात है, नहीं ... मैं वास्तव में एक C / C ++ / WinAPI प्रोग्रामर नहीं हूं। मुझे सिर्फ इन नए कार्यों के अस्तित्व का पता है।
पॉवरलॉर्ड

मेरे कहने का मतलब है कि एक 20 साल के ओएस ने उस अवधि में नए कार्यों को जोड़ा है ?! मन = उड़ा
मार्कस जे

0

टास्क शेड्यूलर भी नया है, बहुत सी नई वस्तुओं और इंटरफेस को जोड़ा गया है। टास्क शेड्यूलर 2.0 से पहले, शेड्यूलिंग कार्यों में लगभग 5 ऑब्जेक्ट शामिल थे। 2.0 में (पेश किया गया जब विस्टा बाहर आया था), 20 हैं, कोई मज़ाक नहीं, 20। यह एक ऐसा है जो win32 प्रोग्रामिंग के बारे में इतनी बड़ी चीजें नहीं है लेकिन यह उतना बुरा नहीं है।

मुझे win32 में प्रोग्रामिंग पसंद है आप इस बारे में बहुत कुछ सीखते हैं कि विंडोज और अन्य ओएस निचले स्तर पर कैसे संचालित होते हैं और यह आपको एक बेहतर प्रोग्रामर बनाता है जो मुझे विश्वास है। यदि आप अजगर में कार्यक्रम करते हैं, तो आप न तो इस बारे में सीखते हैं कि निर्देशिकाओं का आयोजन कैसे किया जाता है, बस उपयोग करें os.listdir("")। लेकिन जब का उपयोग कर FindFirstFile()और FindNextFileWin32 आप, कैसे निर्देशिका आयोजन किया जाता है की खोज में छिपा ".." और पता चलता है "।" निर्देशिका और उस से कैटलॉग और खोज निर्देशिका के लिए अधिक कुशल तरीके आ सकते हैं।

Win32 संसाधनों के लिए http://groups.google.com/group/comp.os.ms-windows.programmer.win32/press पर जाएं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.