2013-12-16 4 views
5

MSDN के अनुसार, CreateWindowEx का पैरामीटर वैकल्पिक है।CreateWindowEx का lpClassName पैरामीटर वैकल्पिक कैसे हो सकता है

lpClassName [में, वैकल्पिक]

हालांकि, प्रलेखन क्या यह NULL पारित करने के लिए इसका मतलब है की कोई जिक्र नहीं है। और क्या है, यदि NULL पास हो गया है, तो विंडो विंडो के लिए नई विंडो के लिए विंडो प्रक्रिया खोजने का कोई तरीका नहीं है।

तो, क्या दस्तावेज़ गलत है? या यह सही है और कुछ परिदृश्य हैं जहां NULLlpClassName के लिए मान्य मान है?

+0

बेट्स खुला: मैं "दस्तावेज गलत" – manuell

+0

'CreateWindowEx'' अनौपचारिक मामले में 'ERROR_INVALID_PARAMETER' लौटाता हूं जहां' lpClassName' 'NULL' है। लेकिन मुझे यकीन नहीं है कि यह एक दस्तावेज त्रुटि है, क्योंकि पैरामीटर को हेडर फ़ाइलों में वैकल्पिक के रूप में भी चिह्नित किया गया है। – Paul

+3

यह वैकल्पिक है क्योंकि यह वैध स्ट्रिंग नहीं हो सकता है। यह एक एटीओएम हो सकता है। मुझे लगता है कि टाइप एनोटेशन डोडी टाइप हैक व्यक्त करने के लिए पर्याप्त परिष्कृत नहीं हैं। – arx

उत्तर

4

CreateWindowEx को lpClassName पैरामीटर एक LPCTSTR होने के लिए घोषित किया जाता है, लेकिन यह वास्तव में या तो एक स्ट्रिंग के लिए एक सूचक या एक वर्ग परमाणु RegisterClass या RegisterClassEx द्वारा दिया जा सकता है।

आदर्श रूप से टाइप एनोटेशन इस पैरामीटर के लिए ठीक से क्या निर्दिष्ट किया गया है, लेकिन मुझे लगता है कि एनोटेशन भाषा में उन चीज़ों के प्रकार का वर्णन करने का कोई तरीका नहीं है जो उनके घोषित प्रकार से मेल नहीं खाते हैं।

सबसे अच्छा वे ऐसा कर सकते हैं यह इंगित करने के लिए वैकल्पिक है कि स्ट्रिंग मान्य नहीं हो सकती है।

+0

मैंने इसे स्वीकार कर लिया, लेकिन मुझे कहना है कि मुझे विश्वास नहीं है कि यह सिर्फ एक दस्तावेज/एनोटेशन बग नहीं है। किसी भी मामले में, मैंने पूछा कि किस तरह का सवाल पूछा गया है, मुझे लगता है कि यह सबसे अच्छा जवाब दिया जा सकता है। इसलिए आपका धन्यवाद। –

संबंधित मुद्दे