다음을 통해 공유


GetVersionExA 함수(sysinfoapi.h)

GetVersionExA는 Windows 8.1 후 릴리스에서 변경되거나 사용할 수 없습니다. 대신 버전 도우미 함수를 사용합니다. Windows 10 앱의 경우 Windows용 애플리케이션 대상 지정을 참조하세요.

Windows 8.1 릴리스하면서 GetVersionEx API의 동작이 운영 체제 버전에 대해 반환되는 값에서 변경되었습니다. 이제 GetVersionEx 함수에서 반환되는 값은 애플리케이션이 매니페스트되는 방법에 따라 달라집니다.

Windows 8.1 또는 Windows 10 대해 매니페스트되지 않은 애플리케이션은 Windows 8 OS 버전 값(6.2)을 반환합니다. 지정된 운영 체제 버전에 대해 애플리케이션이 매니페스트되면 GetVersionEx 는 이후 릴리스에서 애플리케이션이 매니페스트되는 버전을 항상 반환합니다. Windows 8.1 또는 Windows 10 애플리케이션을 매니페스트하려면 Windows용 애플리케이션 대상 지정을 참조하세요.

구문

NOT_BUILD_WINDOWS_DEPRECATE BOOL GetVersionExA(
  [in, out] LPOSVERSIONINFOA lpVersionInformation
);

매개 변수

[in, out] lpVersionInformation

운영 체제 정보를 수신하는 OSVERSIONINFOA 또는 OSVERSIONINFOEXA 구조체입니다.

GetVersionEx 함수를 호출하기 전에 구조체의 dwOSVersionInfoSize 멤버를 적절하게 설정하여 이 함수에 전달되는 데이터 구조를 나타냅니다.

반환 값

함수가 성공하면 반환 값은 0이 아닌 값입니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다. OSVERSIONINFOA 또는 OSVERSIONINFOEXA 구조체의 dwOSVersionInfoSize 멤버에 잘못된 값을 지정하면 함수가 실패합니다.

설명

현재 운영 체제를 식별하는 것은 일반적으로 특정 운영 체제 기능이 있는지 여부를 확인하는 가장 좋은 방법은 아닙니다. 이는 운영 체제에 재배포 가능 DLL에 새로운 기능이 추가되었을 수 있기 때문입니다. GetVersionEx를 사용하여 운영 체제 플랫폼 또는 버전 번호를 확인하는 대신 기능 자체의 존재를 테스트합니다. 자세한 내용은 운영 체제 버전을 참조하세요.

GetSystemMetrics 함수는 현재 운영 체제에 대한 추가 정보를 제공합니다.

제품 설정
Windows XP Media Center Edition SM_MEDIACENTER
Windows XP Starter Edition SM_STARTER
Windows XP Tablet PC Edition SM_TABLETPC
Windows Server 2003 R2 SM_SERVERR2
 

특정 운영 체제 또는 운영 체제 기능에 대한 검사 IsOS 함수를 사용합니다. GetProductInfo 함수는 제품 유형을 검색합니다.

원격 컴퓨터에서 운영 체제에 대한 정보를 검색하려면 NetWkstaGetInfo 함수, Win32_OperatingSystem WMI 클래스 또는 IADsComputer 인터페이스의 OperatingSystem 속성을 사용합니다.

현재 시스템 버전을 필수 버전과 비교하려면 GetVersionEx를 사용하는 대신 VerifyVersionInfo 함수를 사용하여 직접 비교를 수행합니다.

호환 모드가 적용되는 경우 GetVersionEx 함수는 설치된 운영 체제가 아닐 수 있는 자체를 식별하는 대로 운영 체제를 보고합니다. 예를 들어 호환성 모드가 적용되는 경우 GetVersionEx애플리케이션 호환성을 위해 선택된 운영 체제를 보고합니다.

예제

GetVersionEx 함수를 사용하여 애플리케이션이 특정 버전의 운영 체제에서 실행 중인지 여부를 확인하는 경우 원하는 버전 번호보다 크거나 같은 버전 번호에 대해 검사. 이렇게 하면 이후 버전의 운영 체제에 대해 테스트가 성공합니다. 예를 들어 애플리케이션에 Windows XP 이상이 필요한 경우 다음 테스트를 사용합니다.

#include <windows.h>
#include <stdio.h>

void main()
{
    OSVERSIONINFO osvi;
    BOOL bIsWindowsXPorLater;

    ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

    GetVersionEx(&osvi);

    bIsWindowsXPorLater = 
       ( (osvi.dwMajorVersion > 5) ||
       ( (osvi.dwMajorVersion == 5) && (osvi.dwMinorVersion >= 1) ));

    if(bIsWindowsXPorLater)
        printf("The system meets the requirements.\n");
    else printf("The system does not meet the requirements.\n");
}

현재 운영 체제를 식별하는 예제는 시스템 버전 가져오기를 참조하세요.

참고

sysinfoapi.h 헤더는 GETVersionEx를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 sysinfoapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

GetVersion

OSVERSIONINFOA

OSVERSIONINFOEXA

운영 체제 버전

시스템 정보 함수

VerifyVersionInfo

버전 도우미 함수