关于宽字符的问题,求教啊
BOOL C对话框Dlg::initSocket(void)
{
m_sock=WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,0);//创建套接字
if(INVALID_SOCKET==m_sock)
{
MessageBox(TEXT("创建失败"));
return FALSE;
}
SOCKADDR_IN addrsock;
addrsock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrsock.sin_family=AF_INET;
addrsock.sin_port=htons(5000);
if(SOCKET_ERROR==bind(m_sock,(SOCKADDR*)&addrsock,sizeof(SOCKADDR)))
{
MessageBox(TEXT("绑定失败"));
return FALSE;
}
if(SOCKET_ERROR==WSAAsyncSelect(m_sock,m_hWnd,UM_SOCK,FD_READ))//响应函数
{
MessageBox(_T("注册网络读取事件失败"));
return FALSE;
}
return TRUE;
}
LRESULT C对话框Dlg::OnSock(WPARAM wParam,LPARAM lParam)
{
switch(LOWORD(lParam))
{
case FD_READ:
WSABUF wsabuf;
wsabuf.buf=new char[200];
wsabuf.len=200;
DWORD dwRead;
DWORD dwFlag;
CString str;
CString strtemp;
SOCKADDR_IN addrfrom;
int len=sizeof(SOCKADDR);
if(SOCKET_ERROR==WSARecvFrom(m_sock,&wsabuf,1,&dwRead,&dwFlag,
(SOCKADDR*)&addrfrom,&len,NULL,NULL))
{
MessageBox(TEXT("接受数据出错"));
return 0;
}
str.Format("%s说:%s",inet_ntoa(addrfrom.sin_addr),wsabuf.buf);
str+="\\0";
GetDlgItemText(IDC_EDIT_SRVE,strtemp);
str=strtemp+str;
SetDlgItemText(IDC_EDIT_SRVE,str);
break;
}
return 0;
}
“void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能将参数 1 从“const char [9]”转换为“const wchar_t *”
实在是看不太懂这个概念,改来改去都不对。。。。