admin 管理员组文章数量: 894188
域名转换为IP地址示例
一、前提条件
项目中增加对winsock的支持:在应用程序向导中勾选“Windows套接字”选项,也可以手工添加相关的*.h文件和代码实现。
二、编辑对话框资源,添加Button控件、Edit控件和Static Text空间,如下图:
为控件添加变量:
CString m_addr;//对应于Static Text,用于显示IP地址
CString m_host;//对应于Edit控件,用于编辑域名对应于Static Text,用于显示IP地址
三、添加Button事件代码:
void CMFCWinsockDlg::OnBnClickedButton1()
{
LPHOSTENT lpHost;
struct sockaddr_in saDest;
UpdateData(TRUE);//通知把Edit控件的字符串内容传送到m_host变量
lpHost = gethostbyname(m_host);//获得IP地址
if (lpHost == NULL)
{
//do somthing
return;
}
saDest.sin_addr.s_addr = *((u_long FAR *) (lpHost->h_addr));
m_addr = inet_ntoa(saDest.sin_addr);
UpdateData(FALSE);//通知把m_addr字符串内容传送到Static Text控件显示
}
注意事项:在项目属性中设置使用多字节字符集,使用Unicode字符集时编译出错:
error C2664: “gethostbyname”: 不能将参数 1 从“CString”转换为“const char *” 。
另外,在设置成使用多字节字符集后,程序界面变成了传统界面风格,要变回XP风格,可以编辑一个.manifest文件加进项目中编译,我另文说明。
本文标签: 域名转换为IP地址示例
版权声明:本文标题:域名转换为IP地址示例 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1688192971h190344.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论