1、 目录 1 绪言 1 2 方案的论证及选择. 1 3 重要结构和函数 1 3.1 函数 gethostname . 1 3.2 函数 gethostbyname . 2 3.3 函数 inet_ntoa. 2 3.4 函数 TextOut. 3 3.5 函数 memcpy 3 3.6 WSAData 结构 3 4 设计过程 5 4.1 新建对话框. 5 4.2 添加控件. 5 4.3 添加成员变量. 6 4.4 为控件添加映射消息. 6 4.5 定义函数. 7 4.6 添加代码. 7 4.7 设计 icon并运行程序 10 5 程序运行结果及分析 10 6 心得体会 11 参考文献 11 附录
2、 1 sanjinDlg.cpp 程序 . 12 附录 2 头文件 sanjinDlg.h . 18 1 1 绪言 Microsoft Visual C+是 Microsoft 公司推出的开发 Win32 环境程序,面向对 象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、 代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设 置就可使其生成的程序框架支持数据库接口、OLE2,WinSock 网络、3D 控制界 面。它以拥有“语法高亮”,IntelliSense(自动完成功能)以及高级除错功能而著 称。比如,它允许用户进行远程调试,单步执行等。还有允许用户
3、在调试期间重 新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预 编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译 及连结花费的时间,在大型软件计划上尤其显著。 在网络编程中,像获取主机名和 IP 地址这样的基本应用是必不可少的,这 些基本的应用通过适当改变可以很容易地应用到网络软件中。因此,获取主机名 和 IP 地址是用现实意义的。 2 方案的论证及选择 方案一:用 Windows API 进行设计。Windows API 可以很容易获取主机名和 IP 地址,但是在窗口设计是却显得比较繁琐。 方案二:用 MFC 进行设计。用 MFC 设计可以更容易的
4、设计显示界面,在 获取主机名和 IP 地址方面也比不复杂。 综上,选择方案二。 3 重要结构和函数 3.1 函数 gethostname 函数原型为: int gethostname(char *name,int namelen); 其中,参数 name 是一个指向将要存放主机名的缓冲区的指针,namelen用 于指定缓冲区的长度。 该函数把本地主机名存放入由 name 参数指定的缓冲区中。 返回的主机名是一个以 NULL 结束的字符串。主机名的形式取决于 Windows Sockets 实现它可能是一个简单的主机名,或者是一个域名。然而,返回的名 2 字必定可以在 gethostbyname()和 WSAAsyncGetHostByName()中使用。如果没有 错误发生,gethostname()返回 0。否则它返回 SOCKET_ERROR。 3.2 函数 gethostbyname 函数原型为: struct hostent* gethostbyname(const char* addr); 其中,addr 为指向主机名的指针,它一般有函数 gethostname 返回