将BSTR转换为char *

时间:2010-09-06 03:26:00

标签: c++ visual-c++ char bstr

任何人都知道如何将BSTR转换为char *?

更新:我试图这样做,但不知道它是对还是错。

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

1 个答案:

答案 0 :(得分:18)

您的代码没问题。 ConvertBSTRToString就是这么做的。对于strcpytestDest需要足够大以容纳p指向的字符串。请注意,由于ConvertBSTRToString分配了一个新字符串,您需要将其释放到某个地方。一旦完成,请确保:

delete[] p; 

但有几点需要注意(从BSTR documentation on MSDN可以看到):

  
      
  • 在Microsoft Windows上,由一串Unicode字符组成(宽或或   双字节字符)。
  •   
  • 可能包含多个嵌入的空字符。
  •   

因此,您的strcpy 可能不会始终按预期工作。