Поделиться через


Использование служебной программы Checkv4.exe

Внимание

Программа Checkv4.exe не отправляется в пакет SDK для Windows (SDK) для Windows 8, а также в более поздних версиях пакета SDK для Windows.

Служебная программа Checkv4.exe предназначена для предоставления партнера по переносу кода; служебная программа, которая выполняет шаги по базе кода с вами, определяет потенциальные проблемы или выделяет код, который может воспользоваться функциями или структурами, поддерживающими IPv6, и делает рекомендации. С помощью служебной программы Checkv4.exe задача изменения существующего приложения IPv4 для поддержки IPv6 становится гораздо проще.

Программа Checkv4.exe устанавливается в составе пакета SDK для Microsoft Windows Software Development Kit (SDK), выпущенного для Windows Vista и более поздних пакетов SDK (вплоть до, но не включая пакет SDK для Windows 8).

Более ранняя версия служебной программы Checkv4.exe с более ограниченными возможностями также была доступна в рамках более ранней версии технологии Microsoft IPv6 для Windows 2000.

В следующих разделах описано, как использовать программу Checkv4.exe , а затем объяснить рекомендуемый подход для изменения существующего приложения IPv4 для поддержки IPv6.

Рекомендации по выполнению 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, требуют структур, доступных только в последних версиях файла заголовка Ws2tcpip.h, таких как структура SOCKADDR_IN6. Эти файлы заголовков включены в пакет SDK для Windows, выпущенный для Windows Vista и более поздних версий. Эти файлы заголовков также включены в ранее выпущенный пакет SDK для платформы для Windows Server 2003.

    На следующем снимке экрана отображаются результаты использования программы Checkv4.exe в файле Simplec.c, включенном в приложение A:

    checkv4.exe сообщает о несовместимости ipv6 в файле simplec.c

    На следующем снимке экрана отображаются результаты использования программы Checkv4.exe в файле Simples.c, который также включен в приложение A:

    checkv4.exe сообщает о несовместимости ipv6 в файле simples.c

Процесс изменения приложения: начало работы

Существует рекомендуемая процедура, связанная с добавлением возможности IPv6 в приложения. Следующая последовательность полезна, так как она позволяет разработчикам обеспечить выполнение всех шагов, необходимых для изменения существующего приложения IPv4 для поддержки IPv6. Для некоторых приложений может потребоваться более широкое внимание к одной из этих последовательностей; Например, системная служба, скорее всего, будет иметь меньше проблем с пользовательским интерфейсом, чем графическая программа передачи файлов (FTP).

Изменение приложений IPv4 для поддержки IPv6

  1. Исправьте структуры и объявления для обеспечения совместимости IPv6 и IPv4.

  2. Измените вызовы функций, чтобы воспользоваться функциями с поддержкой IPv6, такими как getaddrinfo и getnameinfo.

  3. Просмотрите исходный код для использования жестко закодированных IPv4-адресов, таких как адрес обратного цикла, или использование других строк литералов.

  4. Выполните тщательную проверку пользовательского интерфейса, включая информационные диалоговые окна. Давайте подумать, подходит ли оно для приложений с поддержкой IPv6, чтобы указать или предоставить сведения на основе IP-адресов.

  5. Определите, зависит ли приложение от базовых протоколов, таких как RPC, и внесите соответствующие программные изменения для обработки адресов IPv6.

  6. Используйте флаг времени компиляции IPV6STRICT при компиляции приложений в Windows XP и более поздних версиях. Этот флаг приводит к сбою компиляции несовместимого кода, как показано ниже.

    Приложения Windows Sockets 1.x с несовместимыми кодами не удалось компилировать и вернуть сообщение об ошибке "WINSOCK2 Обязательно".

    Приложения Windows Sockets 2.x с несовместимыми кодами вызывают ошибку времени компиляции для каждого экземпляра несовместимого кода. Сообщение об ошибке создается в следующем формате:

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

    Например:

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