建立基本 IP 協助程式應用程式
建立基本 IP 協助程式應用程式
建立新的空白專案。
將空的 C++ 原始程式檔新增至專案。
請確定組建環境參考 Platform Software Development Kit (SDK) 的 Include、Lib 和 Src 目錄。
確定建置環境連結至 IP 協助程式程式庫檔案 Iphlpapi.lib 和 Winsock Library 檔案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 標頭檔中,不應直接使用。
在 Microsoft Windows 軟體發展工具組 (SDK) 針對 Windows Vista 和更新版本發行,標頭檔的組織已變更。 某些結構現在定義于 Ipmib.h、 Tcpmib.h和 Udpmib.h 標頭檔中,而不是 在 Iprtrmib.h 標頭檔中。 Ipmib.h標頭檔會自動包含Ifmib.h標頭檔。 請注意,這些標頭檔會自動包含在 Iprtrmib.h中,該標頭檔會自動包含在 Iphlpapi.h 標頭檔中。
使用 IP 協助程式 API 的大部分應用程式都需要 Windows Sockets 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 Sockets 1.1 的 Winsock.h 標頭檔。 Windows Sockets 1.1 之 Winsock.h 標頭檔中的宣告會與 Windows Sockets 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 協助程式應用程式只會使用某些 IP 位址資料結構和 IP 位址,從 Windows Sockets 2.0 字串轉換函式。 這些 Windows Sockets 函式不需要呼叫 WSAStartup ,即可在使用這些資源時初始化 Windows Sockets 資源和 WSACleanup 。
在使用這些 IP 位址以外的其他 Winsock 函式字串函式的 IP 協助程式應用程式中,必須先呼叫 WSAStartup 函式來初始化 Windows Sockets 資源,才能呼叫任何 Windows Sockets 函式,並在應用程式使用 Windows Sockets 資源完成時呼叫 WSACleanup 。
注意
需要 Stdio.h標頭檔,才能在此基本 IP 協助程式應用程式中使用各種標準 C 函式。
下一個步驟: 使用 GetNetworkParams 擷取資訊