2010-09-06 101 views
14

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

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

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

回答

18

您的代码没问题。 ConvertBSTRToString就是这样。至于strcpy,需要足够大以容纳p指向的字符串。请注意,由于ConvertBSTRToString分配一个新的字符串,您需要将它释放到某个地方。一旦你完成你一定要做:

delete[] p; 

需要注意几个问题,虽然的(你可以从BSTR documentation on MSDN见):

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

所以,你strcpy可能无法始终正常工作。