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