GetVersionExA 함수(sysinfoapi.h)
GetVersionExA Windows 8.1 이후 릴리스에서 변경되거나 사용할 수 없습니다. 대신
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 함수는 제품 유형을 검색합니다.
원격 컴퓨터에서 운영 체제에 대한 정보를 검색하려면 IADsComputer 인터페이스의 NetWkstaGetInfo 함수, Win32_OperatingSystem WMI 클래스 또는 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를 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | sysinfoapi.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
GetVersion
OSVERSIONINFOA
OSVERSIONINFOEXA
VerifyVersionInfo