क्या एलपीटीस्ट्रेट को सीधे बीएसटी में डालना कानूनी है?क्या आप एक एलपीटीस्ट्रेट को बीएसटी में डाल सकते हैं?
मेरे understanding of BSTR के आधार पर, एक बीएसटीस्ट्रेट को एक बीस्ट्रेट में डालने से सीधे आपको एक दूषित लंबाई उपसर्ग के साथ छोड़ दिया जाएगा। उदाहरण कोड स्पष्ट रूप से बताता है कि एक स्ट्रिंग अक्षर को किसी BSTR में संग्रहीत नहीं किया जा सकता है। क्या कोई मेरे लिए पुष्टि कर सकता है कि LPTSTR/LPCTSTR को लंबाई उपसर्ग को दूषित किए बिना सीधे BSTR पर नहीं डाला जा सकता है?
संपादित करें:
मेरे भ्रम की स्थिति यह एक COM वस्तु के लिए एक कॉल में इस्तेमाल देखने से है। यह पता चला है कि COM dll संकलित करते समय, एक .tli फ़ाइल जेनरेट की जाती है जो एक मध्यवर्ती विधि बनाता है। यह विधि _bstr_t
टाइप करती है। _bstr_t
अपने कन्स्ट्रक्टर में LPTSTR
ले सकता है, इसलिए सबकुछ सुचारू रूप से काम करता है।
स्ट्रिंग डेटा को लंबाई के रूप में व्याख्या नहीं किया जाएगा। तुरंत बाइट्स पहले होगा। एक बीस्ट्रेट लंबाई + स्ट्रिंग संरचना के स्ट्रिंग भाग को इंगित करता है। –
@ बेन: स्पष्टीकरण के लिए धन्यवाद, मुझे यह नहीं पता था। मैं तदनुसार जवाब संशोधित करूंगा। – Jon