में cbSize सदस्य का उद्देश्य क्या है I Win32API संरचनाओं के लिए अक्सर कुछ परिभाषाओं का सामना करना पड़ता है (लेकिन इस तक सीमित नहीं है) जिसमें निम्नलिखित उदाहरण में cbSize
सदस्य है।Win32API structs
typedef struct _TEST {
int cbSize;
// other members follow
} TEST, *PTEST;
और फिर हम इसे इस तरह का उपयोग करें:
TEST t = { sizeof(TEST) };
...
या
TEST t;
t.cbSize = sizeof(TEST);
...
मेरे प्रारंभिक अनुमान है कि इस संभावित वर्ज़निंग के लिए इस्तेमाल किया जा सकता है। एक डीएलएल जो इस तरह की संरचना के लिए सूचक प्राप्त करता है, यह जांच सकता है कि cbSize
सदस्य के पास अपेक्षित मूल्य है जिसके साथ डीएलएल संकलित किया गया था। या यह जांचने के लिए कि संरचना के लिए उचित पैकिंग किया गया है या नहीं। लेकिन मैं आपसे यहां से चाहूंगा।
Win32API पर कुछ सी ++ संरचनाओं में cbSize
सदस्य का उद्देश्य क्या है?
स्टुक्स ओएस संस्करणों के बीच आकार में भिन्नता है। मैंने बस वीसी ++ 2008 के साथ आने वाले प्लेटफॉर्म एसडीके का उपयोग करके एक बग मारा। हम ओएस संस्करण को सही ढंग से परिभाषित नहीं कर रहे थे और एक स्ट्रक्चर के Vista संस्करण का उपयोग करके समाप्त हो गए थे - जो मेरे एक्सपी बॉक्स पर इतना अच्छा काम नहीं कर रहा था। – Aardvark