C++ LPCTSTR 转 std::string报错
代码如下
// CXClientWebSocketCtrl 消息处理程序 VARIANT_BOOL CXClientWebSocketCtrl::Send(LPCTSTR code, LPCTSTR content) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); // TODO: 在此添加调度处理程序代码 std::string _content = content ; std::string _code = code ; return VARIANT_TRUE; }
(红字为报错部分)
错误 1
error C2440: “初始化”: 无法从“LPCTSTR”转换为“std::basic_string<_Elem,_Traits,_Ax>”
e:\workrooms\workroom01\xclient\xclientwebsocket\xclientwebsocket\xclientwebsocketctrl.cpp 206 1 XClientWebSocket
解决方案 :
方案一 :
我这里参数等都是英文考虑的较少 , 直接改成"使用多字节字符集"
右击项目 -> 属性 弹出如下 :
将字符集改为"使用多字节字符集" , 点击应用
然后代码就不报错了
方案二 :
如果仍旧想使用"Unicode"字符集 , 修改代码如下
// CXClientWebSocketCtrl 消息处理程序 VARIANT_BOOL CXClientWebSocketCtrl::Send(LPCTSTR code, LPCTSTR content) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); // TODO: 在此添加调度处理程序代码 std::string _content = LPSTR(content) ; std::string _code = LPSTR(code) ; return VARIANT_TRUE; }
修改为红字部分 , 然后代码也不报错了
参考 :
https://www.cnblogs.com/gaohongchen01/p/4006700.html
https://zhidao.baidu.com/question/204573838018157285.html