2014-07-25 3 views
0

VC++ 2012 (Windows 데스크톱 용 Express 2012)를 사용하여 Win32 프로그램을 개발했습니다. 내 프로젝트를 설정하는 동안 "Win32"/ "Win32 Console Application"을 선택했습니다. Win-7에서 실행할 수는 있지만 POSReady 2009에서는 실패했습니다. POSReady 2009는 WinXP에 가깝습니다. POSReady 2009에서 실행하는 동안 제목으로 표시됩니다. VC++ 2012 또는 다른 방법으로 프로젝트 속성을 구성 할 수있는 방법이 있습니까? 감사.xx는 유효한 win32 응용 프로그램이 아닙니다.

+0

http://msdn.microsoft.com/en-us/library/jj851139.aspx –

+0

아래 페이지에서 Visual Studio 2012 업데이트 4를 설치 한 다음 다시 작성했습니다. 결과는 같습니다. Windows XP 및 Windows Server 2003에 대한 지원을 추가하려면 Visual Studio 2012 Update 1을 설치해야합니다. –

+0

프로젝트의 General + Platform Toolset 설정을 실제로 변경 했습니까? 호환되는 빌드를 얻으려면 v110_xp를 선택해야합니다. Express가 실제로이 btw를 지원하는지는 알 수 없습니다. 의심의 여지가 없으며 전체 v7.1 Windows SDK를 설치하는 데 "매우"익숙하지 않습니다. –

답변

2

VS 2012 업데이트 1 이상 또는 VS 2013 Express를 설치하고 플랫폼 도구 세트를 "v110_xp"또는 "v120_xp"로 설정하여 Windows XP 서비스 팩 3/Windows Server 2003 서비스와 호환되는 응용 프로그램을 만들어야합니다 팩 2).

"v110"/ "v120"과 "v110_xp"/ "v120_xp"플랫폼 도구 모음의 주요 차이점은 Windows SDK입니다. "v110"/ "v120"은 Windows Vista 이상을 대상으로하는 Windows 8.x SDK를 사용하여 빌드됩니다. Windows 8.x SDK를 사용하여 Windows XP 호환 응용 프로그램을 빌드하는 것은 불가능합니다. 따라서 Windows XP/Windows Server 2003을 대상으로하려면 Windows 바탕 화면 용 Express에 포함 된 Windows SDK 7.1A를 사용하는 다른 플랫폼 도구 세트를 사용해야합니다.

Windows SDK를 사용하는 경우 _WIN32_WINNT를 대상 OS에 맞게 적절하게 설정해야합니다. Using the Windows Headers을 참조하십시오. Windows XP/Windows Server 2003의 경우 _WIN32_WINNT = 0x0501로 설정하십시오.

Windows 7.1 SDK가 Windows 8.x SDK에 대해 수행 된 DirectX SDK 통합 이전이기 때문에 DirectX 개발의 경우 이는 몇 가지 중요한 영향을줍니다. 자세한 내용은 this 블로그 게시물을 참조하십시오.

+0

그것은 작동합니다. Platform Toolset을 "v110_xp"로 설정하고 빌드하면 프로그램이 WinXP 및 POSReady 2009에서 실행될 수 있습니다. WIN32_WINNT 및 DirectX에 대한 추가 설명은 나에게 많은 것을 가르쳐줍니다. 이 답변을 매우 고맙게 생각합니다. 고마워. –

+0

"v110_xp"플랫폼 도구 세트는 Windows 7A SDK를 사용하여 끝납니다.이 SDK는 _WIN32_WINNT를 Windows 7에서 작동하는 0x601로 기본 설정하지만 명시 적으로 다른 것으로 설정하지 않는 한 Windows Vista 또는 Windows XP에서는 작동하지 않습니다. Platform Toolset을 변경해야하는 유일한 이유는 Windows XP를 대상으로하는 것입니다. _WIN32_WINNT를 어느쪽으로 설정해야합니다. –

관련 문제