/ / विंडोज परिभाषित डेटा प्रकारों का उपयोग क्यों करें? - खिड़कियां, वाइनपी

विंडोज परिभाषित डेटा प्रकार का उपयोग क्यों करें? - खिड़कियां, winapi

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

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

उत्तर:

जवाब के लिए 2 № 1

फायदा यह है कि typedefविंडोज एसडीके से एस आवश्यकतानुसार समायोजित करेगा। हाल के इतिहास में शायद सबसे अच्छा उदाहरण होगा DWORD_PTR जो x64 में बॉक्स से सही तरीके से व्यवहार करता हैका उपयोग तब किया जाता है, जब आप इस कार्य को करने के लिए हुप्स से गुजरते हैं, जिसे आप "देशी प्रकार" कहते हैं (अर्थात भाषा मानक से)।

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

वही कुछ Win32 प्रकारों के लिए कहा जा सकता है जो भाषा मानक में परिभाषित नहीं हैं क्योंकि वे आपके निर्माण के आधार पर समायोजित करते हैं, जैसे कि LPTSTR.

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