2010-09-06 9 views
14

में कनवर्ट करें कोई भी जानता है कि BSTR को char * में कैसे परिवर्तित करें?बीएसटी को चार *

अद्यतन: मैंने ऐसा करने की कोशिश की, लेकिन यह नहीं पता कि यह सही है या गलत है।

char *p= _com_util::ConvertBSTRToString(URL->bstrVal); 
strcpy(testDest,p); 

उत्तर

18

आपका कोड ठीक है। ConvertBSTRToString बस यही करता है। strcpy के लिए, को p द्वारा इंगित स्ट्रिंग को पकड़ने के लिए पर्याप्त होने की आवश्यकता है। ध्यान दें कि कनवर्टबस्ट्रोस्ट्रिंग एक नई स्ट्रिंग आवंटित करने के बाद से आपको इसे लाइन के नीचे कहीं भी मुक्त करने की आवश्यकता होगी। हो जाने के बाद सुनिश्चित करें कि आप कार्य करें:

delete[] p; 

हालांकि चेतावनियां के एक जोड़े (आप BSTR documentation on MSDN से देख सकते हैं के रूप में):

  • माइक्रोसॉफ्ट विंडोज़ पर, यूनिकोड वर्ण की एक स्ट्रिंग के होते हैं (चौड़ा या डबल बाइट वर्ण)।
  • कई एम्बेडेड शून्य वर्ण हो सकते हैं।

तो, अपने strcpyहमेशा आशा अनुरूप काम नहीं सकता है।

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