我有两个程序要通信,程序A是非UNICODE的程序,程序B是UNICODE的程序程序A里CString strCommand = "Start";要传给程序B,但程序B收的是乱码。。请问程序A里如何对strCommand做一下处理后使程序B收到的不是乱码呢?

解决方案 »

  1.   

    MultiByteToWideChar,这是专门用于这个的
    宏A2W也是做这个的,不过最好用A2T,这样更自适应
      

  2.   

    CString strCommand("Start");
    试试
      

  3.   

    B中接收后,把数据转换为非unicode
      

  4.   

    A(asni)和B(unicode)的数据交换char*或者wchat_t
    如果wchar_t,则A在发送前用MultiByteToWideChar将CString中内容转换为wchar_t*,接收是则将wchar_t*用WideCharToMultiByte转换为char*后再赋给CString。
    用char*,可以在B中做转换。
      

  5.   

    用 ATL的A2T进行转换很方便
      

  6.   

    在通讯时全使用unicode,然后在本地按情况做转换或不转化成ansi
      

  7.   

    CString szB;
    uses_convertions;
    szB = W2A(strcommand); 
      

  8.   

    程序A是非UNICODE的程序,程序B是UNICODE的程序要么A将字符串转为Unicode的 ,然后传给B
    要么A将非Unicode传给B后,由B对其进行转换,转换为Unicode字符