Использование служебной программы 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 в файле Simples.c, который также включен в приложение A:
Процесс изменения приложения: начало работы
Существует рекомендуемая процедура, связанная с добавлением возможности IPv6 в приложения. Следующая последовательность полезна, так как она позволяет разработчикам обеспечить выполнение всех шагов, необходимых для изменения существующего приложения IPv4 для поддержки IPv6. Для некоторых приложений может потребоваться более широкое внимание к одной из этих последовательностей; Например, системная служба, скорее всего, будет иметь меньше проблем с пользовательским интерфейсом, чем графическая программа передачи файлов (FTP).
Изменение приложений IPv4 для поддержки IPv6
Исправьте структуры и объявления для обеспечения совместимости IPv6 и IPv4.
Измените вызовы функций, чтобы воспользоваться функциями с поддержкой IPv6, такими как getaddrinfo и getnameinfo.
Просмотрите исходный код для использования жестко закодированных IPv4-адресов, таких как адрес обратного цикла, или использование других строк литералов.
Выполните тщательную проверку пользовательского интерфейса, включая информационные диалоговые окна. Давайте подумать, подходит ли оно для приложений с поддержкой IPv6, чтобы указать или предоставить сведения на основе IP-адресов.
Определите, зависит ли приложение от базовых протоколов, таких как RPC, и внесите соответствующие программные изменения для обработки адресов IPv6.
Используйте флаг времени компиляции 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