如何将_bstr_t转换为CString

sub*_*bbu 12 c++ com mfc bstr visual-c++

我有一个_bstr_t变量bstrErr,我有一个CString变量csError.如何设置该进来的价值bstrErrcsError

And*_*rew 18

是不是只能施展它:

_bstr_t b("Steve");
CString cs;
cs = (LPCTSTR) b;
Run Code Online (Sandbox Code Playgroud)

我认为这应该在项目是Unicode时起作用.


小智 6

CString具有LPCSTR和LPCWSTR的构造函数和赋值运算符,因此无需调用WideCharToMultiByte,并且无法在unicode或非unicode模式下获得转换错误.

你可以这样分配字符串:

csError = bstrErr.GetBSTR();

或者使用构造函数CString csError(bstrErr.GetBSTR());

我正在使用GetBSTR.这与使用(LPCWSTR)转换bstrErr是一回事,但我更喜欢它的易读性.