将BSTR转换为char*

14

有人知道如何将BSTR转换为char*吗?

更新:我尝试了这样做,但不知道是否正确。

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

18

您的代码没问题。ConvertBSTRToString 就是这么做的。至于strcpytestDest需要足够大以容纳指向p的字符串。请注意,由于ConvertBSTRToString分配了一个新字符串,您需要在某个时候释放它。完成后,请确保执行:

delete[] p; 

需要注意以下几点(您可以从BSTR MSDN文档中看到):

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

因此,您的strcpy可能不总是按预期工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接