2010-09-06 29 views
14

BSTR'yi char *?Dönüştürme BSTR için char *

Güncelleme: Bunu yapmayı denedim, ancak doğru ya da yanlış olup olmadığını bilmiyorum.

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

cevap

18

Sizin kodunuz tamam. ConvertBSTRToString sadece bunu yapar. strcpy'a gelince, , p tarafından işaret edilen dizgiyi tutmaya yetecek kadar büyük olmalıdır. ConvertBSTRToString yeni bir dizge ayırdığından, satırın bir bölümünde serbest bırakmanız gerektiğini unutmayın. emin olmak bitirdikten sonra yapmanız:

delete[] p; 

(Eğer BSTR documentation on MSDN görebileceğiniz gibi) olsa uyarılar Birkaç:

Microsoft Windows On
  • , (Unicode karakter dizesi oluşur geniş veya çift baytlı karakterler).
  • Birden çok gömülü boş karakter içerebilir. beklendiği gibi

Yani, senin strcpyher zaman işe olabilir.

İlgili konular