의문점 :
os가 window10이고, 컴파일러가 vs2022이고, window sdk 버전 10을 사용할 떄,
릴리즈빌드로 exe응용프로그램 생성 시, 생성한 프로그램이 win7에서 작동을 하는가?
(프로그램 최소 지원 window os가 win7이어서, win7에서 프로그램이 작동해야함. )
해답:
최소 윈도우 사양 지정 가능한 매크로가 있다.
윈도우 버전관련 매크로 선언하면, 최소 윈도우 사양 지정 가능하다.
#define WINVER 0x0601
#define _WIN32_WINNT 0x0601
위처럼 매크로 선언하면 win7으로 최소 윈도우 지정된다. ( 원하는 버전별 설정값이 다르다. )
사용 조건 :
sdkddkver.h를 포함하기 전에 WINVER 및 _WIN32_WINNT 매크로를 선언해야 한다.
사용 코드 :
#ifndef WINVER
#define WINVER 0x0601
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0601
#endif
...
#include <SDKDDKver.h>
SDKDDKver.h 전에 선언을 안하면,
SDKDDKver.h 에서 내가 현재 사용중인 os인 win10기준으로 WINVER를 설정하더라.
그러면 릴리즈빌드하여 exe프로그램을 만들었을 때, 그 프로그램이 win7에서 작동을 안할 것이다.
링크2: https://learn.microsoft.com/ko-kr/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170
vs2015(windows10)를 vs2022(windows10)로 마이그레이션 작업 중 이슈들 정리중.
- VS 버전 : 2015(버전 14.0.25420.01 Update 3) -> 2022(버전 17.6.5, MSVC 14.36.32532)
- c++ 언어 설정 : c++14(vs2015) -> c++20 (vs2022)