여러 플랫폼에서 리소스 사용
업데이트: 2007년 11월
Visual Studio에서는 Pocket PC나 Smartphone과 같은 여러 플랫폼을 대상으로 장치 프로젝트를 구성할 수 있습니다. 플랫폼 간의 UI(사용자 인터페이스) 차이 때문에 각 플랫폼마다 프로젝트에 자체 리소스 스크립트(.rc) 파일이 있어야 합니다.
여러 리소스 파일
여러 플랫폼을 대상으로 장치 프로젝트를 설정할 수 있는 방법은 다음 두 가지가 있습니다.
프로젝트를 만들 때 응용 프로그램 마법사 사용
프로젝트를 만든 후
프로젝트 응용 프로그램 마법사의 플랫폼 페이지에서 여러 플랫폼을 선택하면 각 플랫폼에 대해 리소스 파일이 생성되고 구성됩니다. 예를 들어, Pocket PC와 Smartphone을 대상 플랫폼으로 선택하면 Smartphone 플랫폼용으로 빌드할 때는 Pocket PC 리소스 파일이 제외되고 Pocket PC 플랫폼용으로 빌드할 때는 Smartphone 리소스 파일이 제외됩니다.
그러나 프로젝트를 만든 후 플랫폼을 추가하면 플랫폼과 리소스 파일을 직접 추가해야 합니다.
새 플랫폼 추가
새 플랫폼을 추가하려면
빌드 메뉴에서 구성 관리자를 클릭합니다.
활성 솔루션 플랫폼 상자에서 <새로 만들기...>를 클릭합니다.
프로젝트에 추가할 플랫폼을 선택하고 설정을 복사할 원본 플랫폼을 선택한 다음 확인을 클릭합니다.
참고: <기본값>에서 설정을 복사하면 해당 플랫폼의 프로젝트 속성이 비어 있게 됩니다. 비슷한 플랫폼에서 설정을 복사한 다음 필요한 경우 프로젝트 속성을 변경하는 것이 좋습니다. 예를 들어, Smartphone을 플랫폼으로 추가하려는 경우 Pocket PC 플랫폼에서 설정을 복사하십시오.
닫기를 클릭합니다.
새 리소스 파일 추가
이제 새 플랫폼이 있으므로 해당 플랫폼에 대한 리소스 파일을 추가해야 합니다.
새 플랫폼에 대한 리소스 파일을 추가하려면
프로젝트 메뉴에서 새 항목 추가를 클릭합니다.
새 항목 추가 대화 상자에서 리소스를 클릭한 다음 템플릿 창에서 리소스 파일(.rc)을 클릭합니다.
이름 상자에 파일 이름을 입력한 다음 추가를 클릭합니다.
새 리소스 스크립트(.rc) 파일에 해당하는 새 헤더(.h) 파일이 프로젝트에 추가됩니다.
빌드에서 리소스 파일 제외
대상 플랫폼용으로 프로젝트를 빌드할 때 다른 플랫폼의 리소스 파일이 포함되지 않게 하려는 경우 대상 플랫폼에 따라 빌드에서 파일을 제외할 수 있습니다.
빌드에서 리소스 파일을 제외하려면
리소스 스크립트(.rc) 파일을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
플랫폼 상자의 목록에서 첫 번째 플랫폼을 선택합니다.
선택한 플랫폼용으로 프로젝트를 빌드할 때 이 .rc파일이 포함되지 않게 하려면 일반 속성 페이지의 빌드에서 제외 상자에서 예를 선택합니다.
각 플랫폼 구성에 대해 이전 단계를 반복하여 현재 선택한 플랫폼에 속하지 않는 리소스 파일만 제외되도록 합니다.
프로젝트의 각 .rc 파일마다 이전 단계(1-4)를 모두 반복합니다.
솔루션 탐색기에는 현재 선택한 플랫폼용으로 빌드할 때 제외할 각 파일의 아이콘에 빨간색 표시가 나타납니다.
새 플랫폼 구성의 프로젝트 속성 변경
이제 해당 플랫폼용으로 리소스 파일이 설정되었으므로 프로젝트 속성이 새 플랫폼 구성에 맞는지 확인해야 합니다. 비슷한 플랫폼에서 설정을 복사했으면 변경할 속성이 많지 않을 수 있지만 <기본값>을 선택한 경우에는 모든 설정을 직접 추가해야 합니다. 이 예제에서는 새 Smartphone 2003(ARMV4) 플랫폼을 프로젝트에 추가하고 Pocket PC 2003(ARMV4) 플랫폼에서 설정을 복사한 것으로 가정합니다.
프로젝트 속성을 변경하려면
프로젝트 메뉴에서 속성을 선택합니다.
C/C++ 노드를 확장하고 전처리기를 클릭합니다.
전처리기 정의 상자에서 POCKETPC2003_UI_MODEL을 SMARTPHONE2003_UI_MODEL로 변경한 다음 확인을 클릭합니다.
참고: 다른 플랫폼을 추가했거나 다른 플랫폼에서 설정을 복사한 경우에는 추가로 설정을 변경해야 할 수 있습니다.
헤더 파일에 #ifdef 지시문 추가
프로젝트의 기본 헤더 파일에서는 이전 절차에서 설정한 UI 모델 전처리기 정의를 확인해야 하며 해당하는 리소스 파일만 포함해야 합니다.
헤더 파일에 #ifdef 지시문을 추가하려면
ProjectName.h를 엽니다.
원래 플랫폼의 UI 모델에 대한 #ifdef 뒤에 다음 코드를 추가합니다.
#ifdef SMARTPHONE2003_UI_MODEL #include "ResourceFileName.h" #endif