Checkv4.exe 유틸리티 사용
Important
Checkv4.exe 유틸리티는 Windows 8용 Windows SDK(소프트웨어 개발 키트) 또는 이후 버전의 Windows SDK에서 제공하지 않습니다.
Checkv4.exe 유틸리티는 코드 포팅 파트너를 제공하도록 설계되었습니다. 이 유틸리티는 사용자와 함께 코드 베이스를 단계별 실행하거나, 잠재적인 문제를 식별하거나, IPv6 지원 함수 또는 구조를 활용할 수 있는 코드를 강조 표시하고, 권장 사항을 제시합니다. Checkv4.exe 유틸리티를 사용하면 IPv6을 지원하도록 기존 IPv4 애플리케이션을 수정하는 작업이 훨씬 쉬워집니다.
Checkv4.exe 유틸리티는 Windows Vista 및 이후 SDK(Windows 8용 Windows SDK(소프트웨어 개발 키트)까지 릴리스된 Microsoft SDK(소프트웨어 개발 키트)의 일부로 설치됩니다.
더 제한된 기능이 있는 이전 버전의 Checkv4.exe 유틸리티도 Windows 2000용 이전 Microsoft IPv6 기술 미리 보기의 일부로 제공되었습니다.
다음 섹션에서는 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(플랫폼 소프트웨어 개발 키트)에도 포함되어 있습니다.
다음 스크린샷은 부록 A에 포함된 Simplec.c 파일에 Checkv4.exe 유틸리티를 사용한 결과를 표시합니다.
다음 스크린샷은 부록 A에도 포함된 Simples.c 파일에서 Checkv4.exe 유틸리티를 사용한 결과를 표시합니다.
애플리케이션 수정 프로세스: 시작할 위치
애플리케이션에 IPv6 기능을 추가하는 것과 관련된 권장 절차가 있습니다. 이 시퀀스를 따르면 개발자가 IPv6을 지원하기 위해 기존 IPv4 애플리케이션을 수정하는 데 필요한 모든 단계를 수행할 수 있으므로 유용합니다. 특정 애플리케이션은 이러한 시퀀스 중 하나에 더 광범위한 주의가 필요할 수 있습니다. 예를 들어 시스템 서비스에는 FTP(그래픽 파일 전송 프로그램)보다 사용자 인터페이스 문제가 적을 수 있습니다.
IPv6을 지원하도록 IPv4 애플리케이션을 수정하려면
구조 및 선언을 수정하여 IPv6 및 IPv4 호환성을 사용하도록 설정합니다.
getaddrinfo 및 getnameinfo 함수와 같은 IPv6 지원 함수를 활용하도록 함수 호출을 수정합니다.
소스 코드를 검토하여 루프백 주소 또는 다른 리터럴 문자열과 같은 하드 코딩된 IPv4 주소를 사용합니다.
정보 대화 상자를 포함하여 사용자 인터페이스에 대한 철저한 검토를 수행합니다. IPv6 지원 애플리케이션이 IP 주소 기반 정보를 지정하거나 제공하는 것이 적절한지 여부를 확인합니다.
애플리케이션이 RPC와 같은 기본 프로토콜을 사용하는지 여부를 확인하고 IPv6 주소를 처리하기 위해 적절한 프로그래밍 방식으로 변경합니다.
Windows XP 이상에서 애플리케이션을 컴파일할 때 컴파일 시간 플래그 IPV6STRICT 사용합니다. 이 플래그를 사용하면 다음과 같이 호환되지 않는 코드가 컴파일되지 않습니다.
호환되지 않는 코드가 있는 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