if(strcmp((buffer = MySock->RecvMsg()),"") != 0)
{
len=MultiByteToWideChar( //计算从Ansi转换到Unicode后需要的字节数
CP_ACP,
MB_COMPOSITE,
buffer, //要转换的Ansi字符串
-1, //自动计算长度
0,
0
);
temp = NULL;
temp = (TCHAR*)malloc(len*sizeof(TCHAR));
MultiByteToWideChar( //从Ansi转换到Unicode字符
CP_ACP,
MB_COMPOSITE,
buffer,
-1,
temp, //转换到temp
len//最多转换len个Unicode字符
);
SendMessage(hwnd, WM_GETMESSAGE, (WPARAM)0, (LPARAM)temp);//给窗口发送消息
}
SendMessage(GetDlgItem(hWnd,IDC_EDIT1), WM_SETTEXT, NULL, lParam);//这里先在一个EditBox里显示传过来的字符串。显示成功“1&2&3$on”
buf = NULL;
buf = (char*)malloc(256*sizeof(char));
len=WideCharToMultiByte( //计算从Unicode转换到Ansi后需要的字节数
CP_ACP, //根据ANSI code page转换
WC_COMPOSITECHECK | WC_DEFAULTCHAR, //转换出错用缺省字符代替
(LPTSTR)lParam, //要转换的字符串地址
sizeof((LPTSTR)lParam), //要转换的个数
0, //转换后字符串放置的地址
0, //最多转换字符的个数,为0表示返回转换Unicode后需要多少个字节
0, //缺省的字符:"\0"
0 //缺省的设置
);
WideCharToMultiByte( //转换Unicode到Ansi
CP_ACP,
WC_COMPOSITECHECK | WC_DEFAULTCHAR,
(LPTSTR)lParamg,
sizeof((LPTSTR)lParam),
buf, //转换到缓冲区中
len, //最多128个字节
0,
0
);
if(strcmp(buf,"1&2&3$on")==0)
MessageBox(NULL,_T("equil"),NULL,NULL);//这里总是不弹出