想做一个用于在WIN2000下发送消息的小程序,界面如下:
------------------|
server 口 |
to 口 |
from 口 |
text 口 |
OK      CANCEl |
-----------------口为EDIT控件,映射成员函数,m_server,m_sentto,m_sentname,m_msgname,类型都为
value CString.
但是NetMessageBufferSend函数要求的参数是Unicode的,请问如何把CString类型的数据转换成Unicode的呢?
希望给出具体代码,谢谢

解决方案 »

  1.   

    使用下面的一个宏调用TEXT("hello world!"),
      

  2.   

    BSTR bstr;
    CString str="abcddddasdfsdfsa";
    bstr = str.AllocSysString();
             ...............
    SysFreeString(bstr);
      

  3.   

    调用如下的函数:int MultiByteToWideChar(
      UINT CodePage,         // code page
      DWORD dwFlags,         // character-type options
      LPCSTR lpMultiByteStr, // address of string to map
      int cchMultiByte,      // number of bytes in string
      LPWSTR lpWideCharStr,  // address of wide-character buffer
      int cchWideChar        // size of buffer
    );
     
    下面是给字符串在内存中动态分配空间,并将其转换为宽字符
    LPWSTR lpWideCharStr;
    CString string;
    int nLenOfWideCharStr = MultiByteToWideChar(CP_ACP, 0,string, -1, NULL, 0 );
    lpWideCharStr = (unsigned short *)HeapAlloc(GetProcessHeap(),0,nLenOfWideCharStr);
    if (lpWideCharStr==NULL)
    return;
    MultiByteToWideChar(CP_ACP, 0,string, -1, lpWideCharStr, nLenOfWideCharStr);对转换成的Unicode码的字符串可由目的串的指针lpWideCharStr得到