创建基本 IP 帮助程序应用程序

创建基本 IP 帮助程序应用程序

  1. 创建新的空项目。

  2. 将空的 C++ 源文件添加到项目。

  3. 确保生成环境引用平台软件开发工具包 (SDK) 的 Include、Lib 和 Src 目录。

  4. 确保生成环境链接到 IP 帮助程序库文件 Iphlpapi.lib 和 Winsock 库文件WS2_32.lib。

    注意

    某些基本 Winsock 函数用于返回 IP 地址值和其他信息。

     

  5. 开始对 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.hIpexport.hIptypes.h 头文件中定义。 这些头文件会自动包含在 Iphlpapi.h 头文件中,永远不应直接使用。

    在为 Windows Vista 及更高版本发布的 Microsoft Windows 软件开发工具包 (SDK) ,头文件的组织已更改。 某些结构现在在 Ipmib.hTcpmib.hUdpmib.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 函数所必需的。

     

    下一步: 使用 GetNetworkParams 检索信息