CString m_remote_name;
WCHAR Remote_Name[MAX_REMOTE][REMOTE_NAME + 1]; //遥控器名字
tempAct = m_remote_name.GetBuffer();
memset(Remote_Name[WhichRemote], 0, REMOTE_NAME + 1);
WideCharToMultiByte(0,0,tempAct,-1,&MyProject.pEEPROM_INFORMATION->Setting_Union.Setting.Remote_Name[WhichRemote][0],CStringA(m_remote_name).GetLength(),NULL,NULL);

编译报错:
'WideCharToMultiByte' : cannot convert parameter 5 from 'WCHAR *__w64 ' to 'LPSTR
请问这是怎么回事情。怎么修改?

解决方案 »

  1.   

    第5个参数接受的是 char* 你给个 wchar* 显然不行
    给你个参考string Ws2s(const wstring& ws)
    {
    int len = WideCharToMultiByte(CP_ACP,0,ws.c_str(),ws.size(),NULL,0,NULL,NULL);
        if (0 == len)
            return "";
        vector<char> buf;
        buf.resize(len);
    WideCharToMultiByte(CP_ACP,0,ws.c_str(),ws.size(),&buf[0],len,NULL,NULL); return string(buf.begin(), buf.end());
    }
      

  2.   

    告诉你应该用宽字符~~~看看是不是用了char系列的字符串了
      

  3.   

    我现在的WCHAR Remote_Name[MAX_REMOTE][REMOTE_NAME + 1]; //遥控器名字
    是宽字符. 要将一个关联到CString的EDIT m_remote_name赋给这个宽字节. 怎么弄?