방법: 기호 관리
새 리소스 또는 리소스 개체를 만들 때 개발 환경에서 기본 기호 이름(예: IDD_DIALOG1
)을 할당합니다. 속성 창 사용하여 기본 기호 이름을 변경하거나 리소스와 이미 연결된 기호의 이름을 변경할 수 있습니다.
단일 리소스와 연결된 기호의 경우 속성 창을 사용하여 기호 값을 변경할 수도 있습니다. 리소스 기호 대화 상자를 사용하여 현재 리소스에 할당되지 않은 기호의 값을 변경할 수 있습니다.
일반적으로 모든 기호 정의는 에 Resource.h
저장됩니다. 그러나 예를 들어 같은 디렉터리에서 둘 이상의 리소스 파일을 사용할 수 있도록 이 포함 파일 이름을 변경해야 할 수 있습니다.
참고 항목
프로젝트에 .rc 파일이 아직 없는 경우 방법: 리소스 만들기를 참조 하세요.
기호 이름 제한
기호 이름에 대한 제한은 다음과 같습니다.
헤더 파일에서 충돌하는 기호 정의를 방지하려면 모든 기호가 애플리케이션 범위 내에서 고유해야 합니다.
기호 이름에 유효한 문자는 A-Z, a-z, 0-9 및 밑줄(_)입니다.
기호 이름은 숫자로 시작할 수 없으며 247자로 제한됩니다.
기호 이름에는 공백을 포함할 수 없습니다.
기호 이름은 대/소문자를 구분하지 않지만 첫 번째 기호 정의의 경우는 유지됩니다.
기호를 정의하는 헤더 파일은 리소스 컴파일러/편집기 및 C++ 프로그램에서 리소스 파일에 정의된 리소스를 참조하는 데 사용됩니다. 대/소문자만 다른 두 기호 이름에 대해 C++ 프로그램은 별도의 두 기호로 보지만 리소스 컴파일러/편집기는 두 이름이 하나의 단일 기호를 나타내는 것으로 봅니다.
참고 항목
아래에 설명된 표준 기호 이름 구성표(ID*_[keyword])를 따르지 않고 기호 이름이 리소스 스크립트 컴파일러에 알려진 키워드와 같으면 리소스 스크립트 파일을 빌드하려고 하면 진단하기 어려운 임의의 오류 생성이 발생합니다. 이를 방지하려면 표준 이름 지정 체계를 준수하세요.
기호 이름에는 해당 이름이 나타내는 리소스 또는 개체의 종류를 나타내는 설명 접두사가 있습니다. 이러한 설명 접두사는 텍스트 조합 ID로 시작합니다. MFC(Microsoft Foundation Class) 라이브러리는 다음 표에 표시된 기호 명명 규칙을 사용합니다.
범주 | Prefix | 사용할 용어 |
---|---|---|
리소스 | IDR_, IDD_, IDC_, IDI_, IDB_ | 액셀러레이터 또는 메뉴(및 연결된 리소스 또는 사용자 지정 리소스), 대화 상자, 커서, 아이콘, 비트맵 |
메뉴 항목 | ID_ | 메뉴 항목 |
명령 | ID_ | 명령 |
컨트롤 및 자식 창 | IDC_ | 제어 |
문자열 | IDS_ | 문자열 테이블의 문자열 |
MFC | AFX_ | 미리 정의된 MFC 기호에 예약됨 |
기호 이름(ID)을 변경하려면
리소스 뷰에서 리소스를 선택합니다.
속성 창에서 새 기호 이름을 입력하거나 ID 상자의 기존 기호 목록에서 선택합니다.
새 기호 이름을 입력하면 값이 자동으로 할당됩니다.
참고 항목
리소스 기호 대화 상자를 사용하여 현재 리소스에 할당되지 않은 기호의 이름을 변경할 수 있습니다.
기호 값 제한
기호 값은 전처리기 지시문에 대해 #define
일반적인 방식으로 표현되는 정수일 수 있습니다. 다음은 기호 값의 몇 가지 예입니다.
18
4001
0x0012
-3456
액셀러레이터, 비트맵, 커서, 대화 상자, 아이콘, 메뉴, 문자열 테이블 및 버전 정보와 같은 리소스의 기호 값은 0에서 32,767까지의 10진수여야 하지만 16진수일 수는 없습니다. 대화 상자 컨트롤이나 문자열 테이블의 개별 문자열 같이 리소스 일부에 대한 기호 값은 0에서 65,534 사이이거나 -32,768에서 32,767 사이일 수 있습니다. 숫자 범위에 대한 자세한 내용은 TN023: 표준 MFC 리소스를 참조 하세요.
리소스 기호는 16비트 숫자입니다. 부호 있거나 부호 없는 것으로 입력할 수 있지만 내부적으로 부호 없는 정수로 사용되므로 음수는 해당 양수 값으로 캐스팅됩니다.
기호 값의 몇 가지 제한 사항은 다음과 같습니다.
Visual Studio 개발 환경 및 MFC에서는 일부 숫자 범위를 특별한 용도로 사용합니다. 가장 중요한 비트 세트를 사용하는 모든 숫자(부호에 따라 -32,768 ~ -1 또는 32,768 ~ 65,534)는 MFC에 의해 예약되었습니다.
다른 기호 문자열을 사용하여 기호 값을 정의할 수 없습니다. 예를 들어 다음 기호 정의는 지원되지 않습니다.
#define IDC_MYEDIT IDC_OTHEREDIT //not supported
인수를 값 정의로 사용하는 전처리기 매크로는 사용할 수 없습니다. 다음 예제는 컴파일 시간에 평가되는 항목
ID
에 관계없이 유효한 식이 아닙니다.#define IDD_ABOUT ID(7) //not supported
애플리케이션에 식으로 정의된 기호를 포함하는 기존 파일이 있을 수 있습니다.
기호 값을 변경하려면
리소스 뷰에서 리소스를 선택합니다.
속성 창에 기호 이름 뒤에 등호와 정수(예: ID 상자)를 입력합니다.
IDC_EDITNAME=5100
새 값은 다음에 프로젝트를 저장할 때 기호 헤더 파일에 저장됩니다. ID 상자에는 기호 이름만 표시되며 유효성을 검사한 후에는 등호와 값이 표시되지 않습니다.
기호 변경 또는 삭제
리소스 기호 대화 상자에서 리소스 또는 개체에 아직 할당되지 않은 기존 기호를 편집하거나 삭제할 수 있습니다.
할당되지 않은 기호를 변경하려면
이름 상자에서 할당되지 않은 기호를 선택하고 변경을 선택합니다.
기호 변경 대화 상자에 제공된 상자에서 기호 의 이름 또는 값을 편집합니다.
참고 항목
리소스 또는 개체에 할당된 기호를 변경하려면 리소스 편집기 또는 속성 창을 사용해야 합니다.
할당되지 않은(사용되지 않은) 기호를 삭제하려면
리소스 기호 대화 상자에서 삭제할 기호를 선택하고 삭제를 선택합니다.
참고 항목
리소스 파일에서 사용되지 않는 기호를 삭제하기 전에 프로그램 또는 컴파일 시간에 포함된 리소스 파일에서 사용되지 않는지 확인합니다.
기호 포함
다른 애플리케이션에서 만든 리소스 파일을 처음으로 개발 환경에서 읽는 경우 포함된 헤더 파일을 모두 읽기 전용으로 표시합니다. 리소스 포함 대화 상자를 사용하여 읽기 전용 기호 헤더 파일을 추가할 수 있습니다.
읽기 전용 기호 정의를 사용하려는 한 가지 이유는 여러 프로젝트에서 공유하려고 하는 기호 파일 때문입니다.
또한 단순 정수 대신 식을 사용하여 기호 값을 정의하는 기호 정의를 사용하는 기존 리소스가 있는 경우에 포함된 기호 파일을 사용할 수 있습니다. 예시:
#define IDC_CONTROL1 2100
#define IDC_CONTROL2 (IDC_CONTROL1+1)
다음과 같은 경우 환경에서 이러한 계산된 기호를 올바르게 해석합니다.
계산된 기호가 읽기 전용 기호 파일에 배치됩니다.
리소스 파일에 이러한 계산된 기호가 이미 할당된 리소스가 포함되어 있습니다.
숫자 식이 필요합니다.
참고 항목
문자열이나 숫자 식이 필요한 경우에는 식이 계산되지 않습니다.
리소스 파일에 공유(읽기 전용) 기호를 포함하려면
읽기 전용 기호 지시문 상자에서 컴파일러 지시문을 사용하여
#include
읽기 전용 기호를 유지할 파일을 지정합니다.기본 기호 헤더 파일
Resource.h
에서 일반적으로 사용되는 파일 이름이므로 파일을 호출하지 마세요.참고 항목
읽기 전용 기호 지시문 상자에 입력하는 항목은 입력하는 것과 똑같은 방식으로 리소스 파일에 포함됩니다. 입력한 내용에 맞춤법이나 구문 오류가 없는지 확인하세요.
기호 정의만 있는 파일을 포함하려면 읽기 전용 기호 지시문 상자를 사용합니다. 리소스 정의를 포함하지 마세요. 그렇지 않으면 파일이 저장될 때 중복된 리소스 정의가 만들어집니다.
지정한 파일에 기호를 배치합니다.
이러한 방식으로 포함된 파일의 기호는 리소스 파일을 열 때마다 평가되지만 파일을 저장할 때 디스크에서 대체되지 않습니다.
확인을 선택합니다.
리소스 기호 헤더 파일의 이름을 변경하려면
기호 헤더 파일 상자에 포함 파일의 새 이름을 입력합니다.
요구 사항
Win32