리소스 구성 파일 준비

리소스 유틸리티에 설명된 MUIRCT 및 RC 컴파일러 유틸리티는 모두 기본 언어 리소스에 대한 리소스 구성 파일을 지정할 수 있는 명령줄 옵션을 제공합니다. 사람이 읽을 수 있는 이 공용 XML 파일을 사용하면 유틸리티의 일반 명령줄 스위치를 사용하여 얻을 수 있는 것보다 리소스 분할을 더 많이 제어할 수 있습니다. 그러나 리소스 구성 파일을 입력으로 제공하지 않더라도 LN 및 언어별 리소스 파일에는 리소스 구성 데이터가 포함됩니다.

Win32 애플리케이션에 대한 모든 리소스 구성 파일은 동일하게 시작되고 종료됩니다.

<?xml version="1.0" encoding="utf-8"?> 
<localization>

<resources>
        
        <!-- a single win32Resources element goes here -->

</resources>
</localization>

이 항목에서는 Windows Vista 이상에서 관리되지 않는 코드를 빌드하는 데 유용한 XML 스키마의 측면에 중점을 둡니다. 특히 win32Resources 요소의 동작과만 관련이 있습니다.

win32Resources 요소

win32Resources 요소에는 다음 표에 설명된 특성이 있습니다.

특성 이름 필수 Description
fileType No 파일 형식입니다. 항상 "애플리케이션"이어야 합니다.
체크섬(checksum) No LN 파일 및 언어별 리소스 파일의 리소스 구성 데이터에 표시할 체크섬 값입니다. 예를 들어 이 특성을 사용하면 영어(미국)에 대한 규칙에 따라 단일 언어별 리소스 파일에서 체크섬을 복사하고 다른 언어별 리소스 파일에 체크섬을 배치할 수 있습니다. 체크섬은 32자 이하의 16진수 문자열로 지정할 수 있습니다. 숫자 값은 128비트 숫자로 포함할 수 있어야 합니다.
언어 No IETF BCP 47(Windows Vista 이상)과 호환되는 언어 태그(예: 영어용 en-US(미국))
ultimateFallbackLanguage No LN 파일의 리소스 구성 데이터에 삽입할 언어로, 해당 언어별 리소스 파일을 검색하는 데 사용할 최종 대체 언어를 나타냅니다. 리소스 로더가 스레드 기본 설정 UI 언어에서 요청된 리소스 파일을 로드하지 못하는 경우 최종 대체 언어를 마지막 시도로 사용합니다. IETF BCP 47(Windows Vista 이상)과 호환되는 언어 태그(예: 영어(미국)의 경우 en-US입니다.
ultimateFallbackLocation No 대체 위치입니다. 최종 대체 리소스가 LN 파일로 컴파일되는 경우 "내부"를 지정합니다. LN 파일이 최종 대체 리소스에 대한 언어별 리소스 파일을 참조하는 경우 "external"(기본값)를 지정합니다.

리소스 구성 파일에서 win32Resources 요소에는 다음 표에 설명된 하위 요소가 있습니다.

요소 이름 설명
localizedResources 언어별 리소스 파일에 포함된 리소스 종류 및 개별 리소스에 대한 정보를 캡슐화하는 리소스입니다.
neutralResources LN 파일에 포함된 리소스 종류에 대한 정보를 캡슐화하는 리소스입니다.

localizedResources 요소

지역화된 리소스 요소입니다. 기본적으로 이 요소에는 특성이 없고 하위 요소의 형식이 하나만 있습니다. resourceType 요소에 대한 컨테이너일 뿐입니다.

특성 이름 Description
resourceType 언어별 리소스 파일에 포함된 개별 리소스의 형식입니다.

neutralResources 요소

중립 리소스 요소입니다. 이 요소는 resourceType 요소에 대한 컨테이너일 뿐입니다.

특성 이름 Description
resourceType LN 파일에 포함된 단일 리소스의 형식입니다.

resourceType 요소

resourceType 요소는 단일 리소스 종류 또는 개별 리소스에 대한 정보를 캡슐화합니다. 아래에 나열된 특성이 있습니다.

주의

일부 리소스 구성 결함은 입력 리소스 파일 또는 이진 파일 콘텐츠에 따라 RC 컴파일러 또는 MUIRCT에서만 발견됩니다. 입력 파일에 없는 리소스 구성 파일의 resourceType 오류가 catch되지 않아 예기치 않은 동작이 발생합니다. 사용자는 결함이 있는 리소스 구성 파일을 사용할 수 있으며 리소스 구성 파일의 손상된 부분을 사용하는 이진 파일을 도입할 때까지 알 수 없으므로 현재 이진 파일에서 중단이 나타나는 모양이 만들어집니다.

특성 이름 필수 Description
typeNameId Yes 리소스의 이름 또는 식별자를 입력합니다. 문자열 이름 또는 숫자를 지정합니다. 숫자를 사용하는 경우 문자열 앞에 "#"을 추가하여 숫자를 나타낸다는 것을 나타냅니다. 각 resourceType 요소에는 typeNameId 특성이 하나만 있어야 합니다.
itemName No 언어별 리소스 파일에 배치할 리소스의 항목 이름 문자열입니다. 공백으로 구분된 여러 이름(예: "HTML MOFDATA")을 지정할 수 있습니다.
itemId No 언어별 리소스 파일에 배치할 개별 리소스 항목의 식별자입니다. 항목은 범위(예: "1-12") 또는 공백으로 구분된 개별 식별자(예: "1 3 4")로 지정할 수 있습니다.
stringId No 언어별 리소스 파일에 배치할 개별 리소스 항목에 대한 문자열 식별자입니다. 문자열은 범위(예: "1-12") 또는 공백으로 구분된 개별 식별자(예: "1 3 4")로 지정할 수 있습니다. 이 특성을 사용하면 지역화할 수 있는 문자열 테이블 항목과 로컬링할 수 없는 문자열 테이블 항목의 사양을 모두 사용할 수 있습니다. 문자열 테이블 항목 리소스 형식을 나타내는 typeNameId 값 "6"과 함께 사용해야 합니다.
문자열은 문자열 테이블의 16개 블록에 저장됩니다. 예를 들어 문자열 0~15는 단일 리소스 항목 블록에 저장되며 리소스 구성 파일에서 itemId 1 또는 stringId "0-15"로 참조할 수 있습니다. 예를 들어 지역화 가능한 문자열 5개와 로컬링할 수 없는 문자열 3개가 있는 경우 지역화 가능한 문자열에 문자열 식별자 0-4를 할당하고, 문자열 식별자는 로컬링할 수 없는 문자열에 대해 16-18을 할당해야 합니다. 이러한 방식으로 문자열을 구성하지 않으면 영향을 받는 문자열 블록이 LN 파일과 언어별 리소스 파일 모두에 배치됩니다.

localizedResource 요소에서 특정 리소스 종류에 대한 itemName, itemId 및/또는 stringId 특성을 지정하는 경우 지정된 리소스 종류에 대해 지정된 항목 또는 문자열만 언어별 리소스 파일에 배치됩니다. 명시적 항목 이름, 항목 식별자 또는 문자열 식별자 없이 resourceType 요소를 지정하면 지정된 리소스 유형의 모든 항목이 언어별 리소스 파일에 배치됩니다. localizedResource 요소에 나열되지 않은 항목 또는 형식은 LN 파일에 배치됩니다.

다음은 표준 리소스 유형 및 해당 숫자 식별자입니다.

  • CURSOR(1)
  • BITMAP(2)
  • ICON(3)
  • MENU(4)
  • DIALOG(5)
  • STRING(6)
  • FONTDIR(7)
  • FONT(8)
  • 액셀러레이터(9)
  • RCDATA(10)
  • MESSAGETABLE(11)
  • GROUP_CURSOR(12)
  • GROUP_ICON(14)
  • VERSION(16)
  • HTML(23)

예제

<?xml version="1.0" encoding="utf-8"?> 
<localization>
  <resources>
    <win32Resources fileType="Application">
      <neutralResources>
        <resourceType
           typeNameId="#16"
        />
      </neutralResources>
      <localizedResources> 
         <resourceType
                typeNameId="#2"
                itemId="5 6 7 8 9 10 11 12"
                itemName="HTML PRI"
         />
         <resourceType
                typeNameId="#4"
         />
         <resourceType
                typeNameId="#5"
         />
         <resourceType
                typeNameId="#6"
         />
         <resourceType
                typeNameId="#9"
         />
         <resourceType
                typeNameId="#11"
         />
         <resourceType
                typeNameId="#16"
         />
         <resourceType
                typeNameId="HTML"
         />
         <resourceType
                typeNameId="#23"
         />
         <resourceType
                typeNameId="#240"
         />
         <resourceType
                typeNameId="#1024"
         />
         <resourceType
                typeNameId="MY_TYPE"
         />
      </localizedResources> 
    </win32Resources>
  </resources>
</localization>

설명

neutralResources 요소에 ICON(3), DIALOG(5), STRING(6) 또는 VERSION(16) 리소스 형식을 포함하는 경우 localizedResources 요소에서 해당 항목을 복제해야 합니다. 위의 예제에서 볼 수 있습니다. 여기서 리소스 종류 16은 중립 및 지역화된 리소스 섹션 모두에 표시됩니다.

리소스 준비