2014-07-24 4 views
11

내 Visual Studio 2012 솔루션에는 C# 프로젝트, VB.NET 프로젝트, C++/CLI 프로젝트 및 C++ 프로젝트가 있습니다. 현재 플랫폼은 x86, x64Win32입니다. x64을 추가하면 모든 프로젝트에서 사용 된 것으로 나타났습니다. 내가 Win32을 제거 할 수 있도록 x86과 동일하게하고 싶습니다.C++ 프로젝트에서 x86 플랫폼 사용

그래서 구성 관리자로 가서 C++ 프로젝트를 선택했고 플랫폼 콤보 상자에는 옵션이 하나만있었습니다 : Win32, x64, 신규 및 편집. New을 선택한 경우 사용 가능한 유일한 옵션은 ARM입니다.

그렇다면 Win32을 내 .vcxproj에 x86으로 바꾸는 것이 좋습니다. 작동하지 않았습니다 (기본값은 x64). 그런 다음 .sln 파일을 살펴 보았지만 x64가 모든 프로젝트에서 어떻게 작동 하는지를 볼 수 없었습니다.

+0

WIN32는 플랫폼이 아닌 API입니다. 최소한 x86 및 x86_64와 같은 의미는 아닙니다. –

+1

로마에있을 때 ... http://i.imgur.com/pMdq3Y5.png –

+0

"Win32"는 "x86"(x64)과 동일합니다. Visual Studio의 기본 구성 이름은 "Win32"(x86 32 비트), "x64"(64 비트) 및 "ARM"(Windows RT 32 비트)입니다. –

답변

11

IDE가 너무 많아서 32 비트 코드의 공통 플랫폼 이름을 얻지 못합니다. 그렇지 않으면 C++ 코드와 근본적으로 다른 관리 코드를 반영합니다. 관리되는 프로젝트 플랫폼 이름은 AnyCPU, x86, x64 일 수 있습니다. C++ 프로젝트 플랫폼 이름은 Win32, x64 및 ARM 만 가능합니다. 역사는 중요한 역할을합니다. Win32는 Windows NT가 winapi의 32 비트 버전을 도입 한 1990 년대 초반부터 왔습니다. 16 비트 버전과 구별됩니다. 기존 프로젝트를 손상시키지 않고 다시 변경할 수있는 실제 기회가 없었습니다.

관리되는 프로젝트의 x86 플랫폼 이름이 정확히 표준이 아니기 때문에 상속 된 것으로 보이는 VS2010의 실수였습니다. VS2012는 기존 VS 버전처럼 AnyCPU 플랫폼 이름으로 새 프로젝트를 만듭니다. 지터 덕분에 관리 코드에 대한 진정한 플랫폼을 정확하게 설명합니다. 이름은 그렇지 않은 경우 프로젝트 + 속성, 빌드 탭 설정 만 런타임에 특정 지터를 사용하도록합니다. 즉, 플랫폼 이름이 x86 인 경우에도 x86을 강제 실행하지 않으면 프로그램이 여전히 64 비트 프로세스로 실행됩니다. 그것은 VS2010 실수 였고, 많은 비참함을 초래했습니다.

당신은 꽤 붙어 있습니다. 진짜 문제는 아니지만, IDE는 혼합을 잘 처리 할 수 ​​있습니다. Build + Configuration Manager 대화 상자에 대해 이미 알고 있습니다. Build + Build를 사용하거나 F5를 누를 때 어떤 플랫폼이 빌드 될지 명확하게 보여줍니다.

+0

그래, Win32를 제거 할 수 없다. 이 불편 함의 근원으로 돌아가서 Win32가 여기에서 선택되는 것을 막을 수있는 방법이 있습니까 (이미지 참조)? 때로는 VS가 엉망이되어 Win32가 선택되고 기묘한 빌드 오류가 발생하기 때문입니다. http://i.imgur.com/p8AJHOO.png –

+0

VS를 실수로 만들 수 없도록 Tools + Customize를 사용하여 콤보 박스를 제거하십시오. –

+0

하지만 x86 또는 x64를 선택하려면 콤보가 필요합니다. 그리고 그것은 정말로 VS, 나 아닙니다. 프로젝트를 언로드하고 편집하고 다시로드하면 발생합니다 (보통 빌드가 완료되면 msbuild 대상을 호출하기 위해이 작업을 수행하십시오). –

관련 문제