zoukankan      html  css  js  c++  java
  • 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:workroomsworkroom01xclientxclientwebsocketxclientwebsocketxclientwebsocketctrl.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

  • 相关阅读:
    计算机网络第一章_20210512
    bootloader_华清远见
    C#3.17
    linux--cd命令
    国内的开源网站
    安装linux
    如何自我介绍
    课堂破冰游戏“猜猜他是谁”
    办公软件---word
    计算机网络--技能训练
  • 原文地址:https://www.cnblogs.com/hi-gdl/p/12343031.html
Copyright © 2011-2022 走看看