基本的な IP ヘルパー アプリケーションの作成
基本的な IP ヘルパー アプリケーションを作成するには
新しい空のプロジェクトを作成します。
空の C++ ソース ファイルをプロジェクトに追加します。
ビルド環境が、プラットフォーム ソフトウェア開発キット (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 ヘルパー関数は、Iphlpapi.h ヘッダー ファイルによって自動的に含まれる Netioapi.h ヘッダー ファイルで定義されます。 Netioapi.h ヘッダー ファイルを直接使用しないでください。
IP ヘルパー関数で使用される構造体と列挙体の多くは、 Iprtrmib.h、 Ipexport.h、 および Iptypes.h ヘッダー ファイルで定義されています。 これらのヘッダー ファイルは Iphlpapi.h ヘッダー ファイルに自動的に含まれ、直接使用しないでください。
Windows Vista 以降用にリリースされた Microsoft Windows ソフトウェア開発キット (SDK) では、ヘッダー ファイルのorganizationが変更されました。 一部の構造体は、Iprtrmib.h ヘッダー ファイルではなく、Ipmib.h、Tcpmib.h、Udpmib.h ヘッダー ファイルで定義されるようになりました。 Ipmib.h ヘッダー ファイルには、Ifmib.h ヘッダー ファイルが自動的に含まれます。 これらのヘッダー ファイルは、Iphlpapi.h ヘッダー ファイルに自動的に含まれる Iprtrmib.h に自動的に含まれることに注意してください。
Windows Sockets 2.0 の Winsock2.h ヘッダー ファイルは、IP ヘルパー API を使用するほとんどのアプリケーションで必要です。 Winsock2.h ヘッダー ファイルが必要な場合は、Iphlpapi.h ヘッダー ファイルの#include行の前に、このファイルの#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 マクロを使用すると、 Winsock.h ヘッダー ファイルが Windows.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 ソケット関数は、 WSAStartup を呼び出さずに使用して、これらのリソースを使用して Windows ソケット リソースと WSACleanup を 初期化できます。
これらの IP アドレス以外の他の Winsock 関数を文字列関数に使用する IP ヘルパー アプリケーションでは、Windows ソケット関数を呼び出す前に WSAStartup 関数を呼び出して Windows ソケット リソースを初期化する必要があります。また、アプリケーションが Windows ソケット リソースを使用して実行されるときに WSACleanup を呼び出す必要があります。
注意
Stdio.h ヘッダー ファイルは、この基本的な IP ヘルパー アプリケーションのさまざまな標準 C 関数を使用するために必要です。