bar*_*yee 14 c++ bstr char visual-c++
任何人都知道如何将BSTR转换为char*?
更新:我试图这样做,但不知道它是对还是错.
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p );
Run Code Online (Sandbox Code Playgroud)
dir*_*tly 18
你的代码没问题.ConvertBSTRToString做到了那一点.至于strcpy,testDest需要足够大以容纳指向的字符串p.请注意,由于ConvertBSTRToString分配了一个新字符串,您需要将其释放到某个地方.完成后,请确保执行以下操作:
delete[] p;
Run Code Online (Sandbox Code Playgroud)
但有几点需要注意(正如你BSTR在MSDN上的文档中看到的那样):
- 在Microsoft Windows上,由一串Unicode字符(宽字符或双字节字符)组成.
- 可能包含多个嵌入的空字符.
因此,您strcpy 可能无法始终按预期工作.