2014-04-29 2 views
3

XP 환경을 대상으로하는 Visual Studio 2013으로 C++ 프로그램을 만들고 싶습니다. 프로젝트 속성 -> 구성 탭의 UI 옵션을 알고 플랫폼을 설정합니다 도구 모음 맨 위로 Windows v120_xp, 명령 줄 옵션을 사용하여 원하는대로 설정할 수 있습니다. 그렇게하는 방법. 비주얼 스튜디오 2012XP를 대상으로하는 Visual Studio 2013 용 Visual C++ 컴파일러 플래그

내가

세트 CL =/D_USING_V110_SDK71 _ 옵션의 알고; % CL %

내가 비주얼 스튜디오 2013 당신이 도움을 주시기 바랍니다 수 있습니다 유사한 옵션을 찾고

?

답변

5

_USING_V110_SDK71_ 매크로는 XP와 호환되도록 프로그램을 작성하는 것과 아무 관련이 없으며 단지 부작용 일뿐입니다. 필수 옵션은 링커 옵션 인 /SUBSYSTEM입니다. 이 옵션을 사용하여 major 및 minor 하위 시스템 버전 번호를 지정하는 방법에 유의하십시오. 이 옵션을 5,1로 설정하면 프로그램이 XP에서만 실행됩니다. VS2012부터 시작하여 기본 설정은 Windows의 현재 버전의 버전 번호 인 6,0입니다. 이러한 프로그램을 실행하려면 Vista 이상이 필요합니다.

이것은 사실 큰 차이가 있습니다. 버전 번호를 낮추면 Windows에서 일부 Windows 용 앱 - 심심 (shim)은 최신 Windows 버전에 대해 알지 못한다고 발표하는 프로그램을 처리하도록 설계되었습니다. 특히 Aero가 윈도우 메트릭에 대해 거짓말을하는 방식은 고대 프로그램이 뚱뚱한 창 테두리로 계속 실행되도록 설계되었습니다.

CRT도 영향을받습니다. CRT는 스레딩 및 현지화와 관련된 상당히 모호한 세부 정보에 영향을받습니다. 물론 테스트가 필요합니다. 이러한 고대 운영 체제를 지원하는 비용을 염두에 두십시오.

마지막으로 적절한 SDK 버전을 사용해야합니다. 마지막으로 XP와 호환되는 것은 v7.1입니다. 명령 줄에서 빌드 한 다음 8.1을 얻는다면 먼저 % WindowsSdkDir % 환경 변수를 설정하여이를 수정해야합니다. 그리고 헤더 파일에 윈도우즈 버전을 #include해야한다. 미리 컴파일 된 헤더가 있어야한다. XP와 일치하도록 _WIN32_WINNT를 0x501로 정의하고 XP에서 사용할 수없는 winapi 기능을 실수로 사용하는 것을 방지하십시오.

+0

Visual Studio 2013 설치 프로그램이 실제로 최신 SDK (7.1A)를 실제로 설치하는 것처럼 보입니다. Windows SDK에서 특별히 필요한 것이 없으면 VS 2013 만 있으면됩니다. –