有人知道如何将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
可能不总是按预期工作。