c++ - सी प्रोग्रामिंग इन हिंदी नोट्स pdf




सी++ में एक हैंडल क्या है? (5)

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

उदाहरण के लिए, Win32 API में HWND विंडो के लिए एक हैंडल है। अपने आप से यह बेकार है: आप इससे कोई जानकारी नहीं प्राप्त कर सकते हैं। लेकिन इसे सही एपीआई कार्यों में पास करें, और आप इसके साथ विभिन्न चालों का धन कर सकते हैं। आंतरिक रूप से आप एचडब्ल्यूएनडी के बारे में सोच सकते हैं कि जीयूआई की खिड़कियों की तालिका में केवल एक इंडेक्स है (जो जरूरी नहीं है कि यह कैसे कार्यान्वित किया जाए, लेकिन यह जादू को समझ में आता है)।

संपादित करें: 100% निश्चित नहीं है कि आप विशेष रूप से अपने प्रश्न में क्या पूछ रहे थे। यह मुख्य रूप से शुद्ध सी / सी ++ के बारे में बात कर रहा है।

मुझे बताया गया है कि एक हैंडल एक सूचक का प्रकार है, लेकिन नहीं, और यह आपको ऑब्जेक्ट के बजाए किसी ऑब्जेक्ट का संदर्भ रखने की अनुमति देता है। एक और विस्तृत स्पष्टीकरण क्या है?


एक हैंडल एक प्रकार का सूचक है जिसमें यह आमतौर पर कुछ इकाई का संदर्भ देने का एक तरीका है।

यह कहना अधिक सटीक होगा कि एक सूचक एक प्रकार का हैंडल है, लेकिन सभी हैंडल पॉइंटर्स नहीं हैं।

उदाहरण के लिए, एक हैंडल मेमोरी टेबल में कुछ इंडेक्स भी हो सकता है, जो उस प्रविष्टि से मेल खाता है जिसमें कुछ ऑब्जेक्ट में पॉइंटर होता है।

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

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


एक हैंडल जो कुछ भी आप चाहते हैं।

एक हैंडल कुछ लुकअप टेबल में इस्तेमाल किए गए एक हस्ताक्षरित पूर्णांक हो सकता है।

एक हैंडल डेटा के एक बड़े सेट के लिए, या में एक सूचक हो सकता है।

यह इस बात पर निर्भर करता है कि हैंडल का उपयोग करने वाला कोड कैसा व्यवहार करता है। यह हैंडल प्रकार निर्धारित करता है।

' हैंडल ' शब्द का उपयोग किया जाने वाला कारण महत्वपूर्ण है। यह उन्हें ऑब्जेक्ट की पहचान या पहुंच प्रकार के रूप में इंगित करता है। मतलब, प्रोग्रामर के लिए, वे किसी 'कुंजी' या किसी चीज़ तक पहुंच का प्रतिनिधित्व करते हैं।


यह Handle-Body-Idiom के संदर्भ में दिखाई देता है, जिसे पिंपल मुहावरे भी कहा जाता है। यह किसी को एक पुस्तकालय के एबीआई (बाइनरी इंटरफ़ेस) को एक अन्य वर्ग ऑब्जेक्ट में रखकर, एक पुस्तकालय के एबीआई (बाइनरी इंटरफ़ेस) को रखने की अनुमति देता है, जिसे केवल "हैंडल" ऑब्जेक्ट में रखे गए पॉइंटर द्वारा संदर्भित किया जाता है, जिसमें उस वर्ग को प्रस्तुत करने वाले फ़ंक्शंस शामिल होते हैं " तन"।

यह दो ऑब्जेक्ट्स के स्थिर समय और अपवाद सुरक्षित स्वैप को सक्षम करने के लिए भी उपयोगी है। इसके लिए, केवल शरीर वस्तु को इंगित करने वाला पॉइंटर बदलना होगा।


HANDLE hnd; is same as void * ptr;

हैंडल विज़ुअल स्टूडियो (विंडोज़) में winnt.h फ़ाइल में परिभाषित एक टाइपफ़ेड है।

आईसी: typedef void *HANDLE;

HANDLE बारे में और पढ़ें







handle