我看论坛好多人都说GETBUFFER可以,我试了下,编译提示:无法从“wchar_t *”转换为“char ×”。
WideCharToMultiByte倒是可以编译通过,但是会显示乱码。
我要做的就是从一边的CString用SOCKET传送到另一边的CString,到底应该怎么做啊?

解决方案 »

  1.   


    这个,你要说说通讯两端的情况。发送端:发送的是什么编码?接收端:是什么工程?UNICODE ,还是非 UNICODE
      

  2.   

    1、从“无法从‘wchar_t *’转换为‘char *’”推断,LZ的是unicode工程。
    2、从“WideCharToMultiByte倒是可以编译通过,但是会显示乱码”推断,LZ两端的程序都是unicode工程。所以不需要转换,可以直接发送原始字节流:
    A端:
    CString strSend;
    size_t sizeToSend = (strSend.GetLength()+1)*2;
    char* pSend = (char*)(const wchar_t*)strSend;B端:
    char* pRecv;
    CString strRecv = (wchar_t*)pRecv;