次の方法で共有


Checkv4.exe ユーティリティの使用

重要

Checkv4.exe ユーティリティは、Windows 8用の Windows ソフトウェア開発キット (SDK) や、それ以降のバージョンの Windows SDK には付属していません。

Checkv4.exe ユーティリティは、コード 移植パートナーを提供するように設計されています。コード ベースをステップ実行し、潜在的な問題を特定したり、IPv6 対応の関数または構造体の恩恵を受ける可能性のあるコードを強調表示したり、推奨事項を作成したりするユーティリティ。 Checkv4.exe ユーティリティを使用すると、IPv6 をサポートするように既存の IPv4 アプリケーションを変更するタスクがはるかに簡単になります。

Checkv4.exe ユーティリティは、Windows Vista 以降の SDK 用にリリースされた Microsoft Windows ソフトウェア開発キット (SDK) の一部としてインストールされます (windows Software Development Kit (SDK) for Windows 8まで)。

より限定的な機能を備えた以前のバージョンの Checkv4.exe ユーティリティも、以前の Microsoft IPv6 Technology Preview for Windows 2000 の一部として使用できるようになりました。

次のセクションでは、 Checkv4.exe ユーティリティの使用方法について説明し、IPv6 をサポートするように既存の IPv4 アプリケーションを変更するための推奨される方法について説明します。

Checkv4.exeの実行に関する推奨事項

  • Checkv4.exe ユーティリティは簡単です。 コマンド ラインでCheckv4.exeを実行し、パラメーターとしてチェックするファイルの名前を指定します。 Checkv4.exe はファイルを解析し、そのファイルに IPv6 移植の問題が存在する場所に関するフィードバックを提供します。 Checkv4.exeをコンピューターのパスに配置すると、ソース コードディレクトリ構造内のどこからでもCheckv4.exeユーティリティを実行しやすくなります。 たとえば、 Checkv4.exe を %windir% に配置すると、パスを含めずに、コンピューター上の任意のディレクトリから Checkv4.exe を起動できます。

  • コマンド プロンプトで次のコマンドを発行して、Simplec.c ファイルを解析します。

    Checkv4 simplec.c

    Checkv4.exe ユーティリティによって行われた推奨事項の一部では、SOCKADDR_IN6構造体など、Ws2tcpip.h ヘッダー ファイルの最新バージョンでのみ使用できる構造体が必要であることに注意してください。 これらのヘッダー ファイルは、Windows Vista 以降でリリースされた Windows SDK に含まれています。 これらのヘッダー ファイルは、Windows Server 2003 用にリリースされた以前のプラットフォーム ソフトウェア開発キット (SDK) にも含まれています。 これらのヘッダー ファイルは、MSDN サブスクリプションの一部として、またはダウンロードによっても含まれます。

    次のスクリーン ショットは、付録 A に含まれる Simplec.c ファイルで Checkv4.exe ユーティリティを使用した結果を示しています。

    checkv4.exeは、simplec.c ファイル内の ipv6 非互換性を報告します

    次のスクリーン ショットは、Simples.c ファイルで Checkv4.exe ユーティリティを使用した結果を示しています。これは付録 A にも含まれています。

    checkv4.exeは、simples.c ファイルの ipv6 非互換性を報告します

アプリケーション変更プロセス: 開始する場所

アプリケーションへの IPv6 機能の追加に関連する推奨手順があります。 この順序に従うと、開発者は IPv6 をサポートするために既存の IPv4 アプリケーションを変更するために必要なすべての手順を確実に実行できるため、有益です。 特定のアプリケーションでは、これらのシーケンスの 1 つに対してより広範な注意が必要な場合があります。たとえば、システム サービスのユーザー インターフェイスの問題は、グラフィカル ファイル転送プログラム (FTP) よりも少なくなります。

IPv6 をサポートするように IPv4 アプリケーションを変更するには

  1. IPv6 と IPv4 の互換性を有効にするために、構造体と宣言を修正します。

  2. getaddrinfo 関数や getnameinfo 関数などの IPv6 対応関数を利用するように関数呼び出しを変更します。

  3. ループバック アドレスなどのハードコーディングされた IPv4 アドレスの使用、または他のリテラル文字列の使用については、ソース コードを確認してください。

  4. 情報ダイアログ ボックスなど、ユーザー インターフェイスの詳細なレビューを実行します。 IPv6 対応アプリケーションが IP アドレスベースの情報を指定または提供するのが適切かどうかを考えます。

  5. アプリケーションが RPC などの基になるプロトコルに依存しているかどうかを判断し、IPv6 アドレスを処理するための適切なプログラムによる変更を行います。

  6. Windows XP 以降でアプリケーションをコンパイルする場合は、コンパイル時フラグ IPV6STRICT を使用します。 このフラグを指定すると、次のように互換性のないコードがコンパイルに失敗します。

    互換性のないコードを含む Windows ソケット 1.x アプリケーションはコンパイルに失敗し、"WINSOCK2 必須" というエラー メッセージが返されます。

    互換性のないコードを持つ Windows Sockets 2.x アプリケーションでは、互換性のないコードのインスタンスごとにコンパイル時エラーが発生します。 次の形式でエラー メッセージが生成されます。

    [file name] ([line number]) : [error message] '[symbol]_IPV6INCOMPATIBLE'

    次に例を示します。

    sample.c(8) : error C2065: 'gethostbyaddr_IPV6INCOMPATIBLE' : undeclared identifier