【问题标题】:Convert BSTR to char*将 BSTR 转换为 char*
【发布时间】:2011-04-08 14:38:53
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    delete[] p; 
    

    但有几点需要注意(正如您从 BSTR documentation on MSDN 中看到的那样):

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

    所以,您的strcpy 可能不会总是按预期工作。

    【讨论】:

      猜你喜欢
      • 2010-10-11
      • 1970-01-01
      • 2013-01-04
      • 2011-05-17
      • 2011-08-09
      • 2010-09-15
      • 2013-05-12
      • 1970-01-01
      • 2013-05-24
      相关资源
      最近更新 更多