问题描述:
项目工程为VS2008 UNICODE环境,需要添加TCP/IP通讯功能,自然需要提供设置IP地址和端口的接口给用户,但是从配置文件中读取出来正常,输入到界面就有问题,在网上查了很多这种情况,但是给出的解决方法都不适用。
最后使用了非常土的方法解决了问题,算是曲线救国吧。
解决代码:
TCHAR ip[20];
GetPrivateProfileString(_T("Server"),_T("IP"),_T("127.0.0.1"),ip,20,_T("Server.ini"));
//MessageBox(ip);
CString strIP = ip;
char temp[30];
for(int i=0;i<20;i++)
temp[i] = ip[i];
temp[19] = '\0';
DWORD dwIP;
dwIP = inet_addr(temp); //此处转换后的IP地址顺序不正确
BYTE a,b,c,d;
m_IP.SetAddress(dwIP);
m_IP.GetAddress(a,b,c,d);
m_IP.SetAddress(d,c,b,a); //调整IP顺序,输出到界面
m_port = GetPrivateProfileInt(_T("Server"),_T("Port"),9001,_T("Server.ini"));
UpdateData(false);