我是從IP控制元件獲取的ip,但是總出現這個問題,專案要用UNICODE編程,所以問問各位大神有沒有什么解決辦法
//加載套接字庫
UpdateData(TRUE);
UpdateWindow();
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(1, 1);
err = WSAStartup(wVersionRequested, &wsaData);
if (err != 0)
{
return;
}
if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)
{
WSACleanup();
return;
}
//創建套接字
sockClient = socket(AF_INET,SOCK_STREAM,0);
if (INVALID_SOCKET == sockClient)
{
MessageBox(_T("套接字創建失敗!"));
return ;
}
SOCKADDR_IN addrSrv;
CString serv_addr;
unsigned char *pIP;
DWORD dwIP;
((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1))->GetAddress(dwIP);
pIP = (unsigned char*)&dwIP;
//出現型別不匹配的問題
serv_addr.Format(L"%u.%u.%u.%u ", *(pIP + 3), *(pIP + 2), *(pIP + 1), *pIP);
//addrSrv.sin_addr.S_un.S_addr = inet_addr("172.25.11.17");//服務器的IP
addrSrv.sin_addr.S_un.S_addr = inet_addr(serv_addr.GetBuffer(1));//轉換服務器ip地址
addrSrv.sin_family = AF_INET;
//addrSrv.sin_port = htons(11110);//服務器埠號
addrSrv.sin_port = htons(_ttoi(mID_PORT));
connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));//向服務器發出連接請求
uj5u.com熱心網友回復:
既然用mfc,為何不用CSocket?另外用ip控制元件關聯直接關聯成dword。uj5u.com熱心網友回復:
把unicode轉成charuj5u.com熱心網友回復:
WCHAR*轉char*WideCharToMultiByte()
uj5u.com熱心網友回復:
我用了USES_CONVERSION;在inet_addr函式里加了T2A進行轉換,初步測驗成功
uj5u.com熱心網友回復:
直接用CW2A等API是最簡單的轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/112514.html
標籤:網絡編程
上一篇:雙擊滑鼠重繪區域
下一篇:如何在滾動視圖中,始終顯示滾動條
