본문 바로가기
VS2022/Migration from vs2015

window sdk 10 사용 시, win7(win10 이 전 os)에서 응용프로그램(.exe) 실행하고 싶을 때

by juheeL 2023. 9. 12.

의문점 : 

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에서 작동을 안할 것이다.

 

 

 

링크1: https://stackoverflow.com/questions/44262083/which-sdk-do-i-need-to-ensure-windows-7-compatibility-in-visual-studio-c-2017

링크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)