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

  • 相关阅读:
    Java创建多线程的方法
    Spring Cloud 学习笔记 来自csdn
    Java线程退出
    Java线程的中断与插入
    Java守护线程
    Linux安装jdk
    内部类
    枚举,包类型
    jenkins
    设计模式之装饰者模式
  • 原文地址:https://www.cnblogs.com/hi-gdl/p/12343031.html
Copyright © 2011-2022 走看看