创建基本 IP 帮助程序应用程序
创建基本 IP 帮助程序应用程序
创建新的空项目。
将空的 C++ 源文件添加到项目。
确保生成环境引用平台软件开发工具包 (SDK) 的 Include、Lib 和 Src 目录。
确保生成环境链接到 IP 帮助程序库文件 Iphlpapi.lib 和 Winsock 库文件WS2_32.lib。
注意
某些基本 Winsock 函数用于返回 IP 地址值和其他信息。
开始对 IP 帮助程序应用程序进行编程。 通过包含 IP 帮助程序头文件,使用 IP 帮助程序 API。
#include <winsock2.h> #include <iphlpapi.h> #include <stdio.h> int main() { return 0; }
注意
使用 IP 帮助程序函数的应用程序需要 Iphlpapi.h 头文件。 Iphlpapi.h 头文件自动包含其他标头文件,其中包含 IP 帮助程序函数使用的结构和枚举。
Windows Vista 和更高版本中引入的新 IP 帮助程序函数在 Netioapi.h 头文件中定义,该文件由 Iphlpapi.h 头文件自动包含。 永远不应直接使用 Netioapi.h 头文件。
IP 帮助程序函数使用的许多结构和枚举在 Iprtrmib.h、 Ipexport.h 和 Iptypes.h 头文件中定义。 这些头文件会自动包含在 Iphlpapi.h 头文件中,永远不应直接使用。
在为 Windows Vista 及更高版本发布的 Microsoft Windows 软件开发工具包 (SDK) ,头文件的组织已更改。 某些结构现在在 Ipmib.h、 Tcpmib.h 和 Udpmib.h 头文件中定义,而不是在 Iprtrmib.h 头文件中定义。 Ipmib.h 头文件自动包含 Ifmib.h 头文件。 请注意,这些头文件会自动包含在 Iphlpapi.h 头文件中的 Iprtrmib.h 中。
大多数使用 IP 帮助程序 API 的应用程序都需要 Windows 套接字 2.0 的 Winsock2.h 头文件。 如果需要 Winsock2.h 头文件,则应将此文件的#include行放在 Iphlpapi.h 头文件的#include行之前。
Winsock2.h 头文件在内部包含 Windows.h 头文件中的核心元素,因此 IP 帮助程序应用程序中通常没有 windows.h 头文件#include行。 如果 Windows.h 头文件需要#include行,则前面应包含#define WIN32_LEAN_AND_MEAN宏。 出于历史原因, Windows.h 标头默认包含 Windows 套接字 1.1 的 Winsock.h 头文件。 Windows 套接字 1.1 的 Winsock.h 头文件中的声明将与 Windows 套接字 2.0 所需的 Winsock2.h 头文件中的声明冲突。 WIN32_LEAN_AND_MEAN 宏可防止 Windows.h 头文件包含 Winsock.h 头文件。 下面显示了说明这一点的示例。
#ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #include <windows.h> #include <winsock2.h> #include <iphlpapi.h> #include <stdio.h> int main() { return 0; }
注意
此基本 IP 帮助程序应用程序仅使用 Windows 套接字 2.0 中的某些 IP 地址数据结构和 IP 地址到字符串转换函数。 使用这些资源后,无需调用 WSAStartup 即可使用这些 Windows 套接字函数来初始化 Windows 套接字资源和 WSACleanup 。
在使用这些 IP 地址以外的其他 Winsock 函数到字符串函数的 IP 帮助程序应用程序中,必须先调用 WSAStartup 函数来初始化 Windows 套接字资源,然后才能调用任何 Windows 套接字函数,并在应用程序使用 Windows 套接字资源时调用 WSACleanup 。
注意
Stdio.h 头文件是在此基本 IP 帮助程序应用程序中使用各种标准 C 函数所必需的。