码迷,mamicode.com
首页 > 编程语言 > 详细

MFC Unicode编码下,获取CString描述的IP地址并赋值到CIPAddressCtrl控件中

时间:2015-02-02 12:08:12      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:

1. UniCode编码下,CString中字符被声明为宽字,应使用如下方法获取char*

技术分享
CString cstrIp = strIp;
// Unicode 下将 CString转为char*
int n = cstrIp.GetLength();
int len = WideCharToMultiByte(CP_ACP,0,cstrIp,cstrIp.GetLength(),NULL,0,NULL,NULL);
char *p = new char[len+1];
WideCharToMultiByte(CP_ACP,0,cstrIp,cstrIp.GetLength() ,p, len, NULL,NULL);
p[len] = 0;
View Code

2. 将char*描述的IP地址转化为WDORD

技术分享
DWORD dwIp = inet_addr(p);
View Code

3. 将DWORD值赋值到CIPAddressCtrl控件中

技术分享
// 得到的DWORDIP地址为从低位到高位,如127.0.0.1,会得到0x0100007F
// 需要进行转换
m_host_ip.SetAddress(
    (dwIp & 0xFF),                // 获取0~7位 
    (dwIp & 0xFF00) >> 8,            // 获取15~8位
    (dwIp & 0xFF0000) >> 16,        // 获取23~16位
    (dwIp & 0xFF000000) >> 24);        // 获取31~24位    
View Code

如上便是全部的代码,各位如果有更为简单的办法,欢迎指教~

MFC Unicode编码下,获取CString描述的IP地址并赋值到CIPAddressCtrl控件中

标签:

原文地址:http://www.cnblogs.com/tianhanxin/p/4267219.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!