有人知道如何将 BSTR 转换为 char* 吗?
更新:我试图这样做,但不知道它是对还是错。
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p );
有人知道如何将 BSTR 转换为 char* 吗?
更新:我试图这样做,但不知道它是对还是错。
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p );
你的代码没问题。ConvertBSTRToString
就是这样做的。至于strcpy
,testDest
需要足够大以容纳 所指向的字符串p
。请注意,由于 ConvertBSTRToString 分配了一个新字符串,因此您需要在后面的某个地方释放它。完成后,请确保您这样做:
delete[] p;
不过有几点需要注意(您可以从BSTR
MSDN 上的文档中看到):
- 在 Microsoft Windows 上,由一串 Unicode 字符(宽字符或双字节字符)组成。
- 可能包含多个嵌入的空字符。
因此,您strcpy
可能并不总是按预期工作。