UpdateResourceA 함수(winbase.h)
PE(이식 가능한 실행 파일) 파일에서 리소스를 추가, 삭제 또는 대체합니다. 리소스 구성(RC 구성) 데이터가 포함된 파일의 리소스 업데이트에는 LN(언어 중립적) 파일 및 언어별 리소스(.mui) 파일
통사론
BOOL UpdateResourceA(
[in] HANDLE hUpdate,
[in] LPCSTR lpType,
[in] LPCSTR lpName,
[in] WORD wLanguage,
[in, optional] LPVOID lpData,
[in] DWORD cb
);
매개 변수
[in] hUpdate
형식: HANDLE
업데이트할 파일을 참조하는 BeginUpdateResource 함수에서 반환된 모듈 핸들입니다.
[in] lpType
형식: LPCTSTR
업데이트할 리소스 종류입니다. 또는 포인터가 아니라 ID(MAKEINTRESOURCE)를
미리 정의된 리소스 종류 목록은 리소스 종류참조하세요.
[in] lpName
형식: LPCTSTR
업데이트할 리소스의 이름입니다. 또는 포인터 대신 ID가 리소스 ID인 MAKEINTRESOURCE(ID)를
[in] wLanguage
형식: WORD
업데이트할 리소스의 언어 식별자. 언어 식별자를 구성하는 기본 언어 식별자 및 하위 언어 식별자 목록은 MAKELANGID 매크로를 참조하세요.
[in, optional] lpData
형식: LPVOID
hUpdate표시되는 파일에 삽입할 리소스 데이터입니다. 리소스가 미리 정의된 형식 중 하나인 경우 데이터는 유효하고 적절하게 정렬되어야 합니다. LoadIcon, LoadString또는 기타 리소스별 부하 함수에서 제공하는 데이터가 아니라 hUpdate표시된 파일에 저장되는 원시 이진 데이터입니다. 문자열 또는 텍스트를 포함하는 모든 데이터는 유니코드 형식이어야 합니다. lpData ANSI 데이터를 가리킬 수 없습니다.
[in] cb
형식: DWORD
lpData리소스 데이터의 크기(바이트)입니다.
반환 값
형식: BOOL
성공하거나 FALSE
발언
이 함수를 호출하기 전에 리소스 파일을 로드하지 않는 것이 좋습니다. 그러나 해당 파일이 이미 로드되어 있으면 오류가 반환되지 않습니다.
애플리케이션은 UpdateResource 반복적으로 사용하여 리소스 데이터를 변경할 수 있습니다. UpdateResource 대한 각 호출은 추가, 삭제 및 대체의 내부 목록에 기여하지만 실제로는 hUpdate표시된 파일에 데이터를 쓰지 않습니다. 애플리케이션은 EndUpdateResource 함수를 사용하여 파일에 누적된 변경 내용을 작성해야 합니다.
이 함수는 코드와 리소스를 모두 포함하는 모듈 내의 리소스를 업데이트할 수 있습니다.
Windows Vista: 위에서 설명한 대로 RC 구성 데이터를 포함하는 파일의 리소스 업데이트에 대한 제한 사항이 있습니다. LN 파일 및 .mui 파일. 제한 사항은 다음과 같습니다.
행동 | LN 파일 | .mui 파일 |
---|---|---|
1. LN 또는 .mui 파일에 없는 새 형식을 추가합니다. | LN 파일에 형식을 추가하고 언어 중립적(지역화할 수 없음)으로 처리하고 RC 구성 데이터에 새 형식 또는 항목을 추가합니다. | 파일 버전, RC 구성 데이터, Side-by-side 어셈블리 XML 매니페스트 형식만 추가하면 됩니다. |
2. 기존 형식에 새 리소스 항목을 추가합니다. | RC 구성 데이터를 사용하여 이 LN 파일과 연결된 .mui 파일에 형식이 있는지 확인합니다. .mui 파일에 형식이 없는 경우 항목을 추가하고 새 항목을 지역화할 수 없는 것으로 처리합니다. 형식이 .mui 파일에 있는 경우 추가가 허용되지 않습니다. | 파일 버전, RC 구성 데이터, Side-by-side 어셈블리 XML 매니페스트 등의 항목만 추가할 수 있습니다. |
3. 리소스 항목을 업데이트합니다. | RC 구성 데이터를 사용하여 형식이 LN 파일과 연결된 .mui 파일에 있는지 확인합니다. .mui 파일에 형식이 없으면 LN 파일에서 이 리소스 항목 업데이트가 허용됩니다. 그렇지 않으면 이 LN 파일과 연결된 .mui 파일에 형식이 있으면 이 업데이트가 허용되지 않습니다. | 허용되는 유일한 업데이트는 파일 버전, RC 구성 데이터, Side-by-side 어셈블리 XML 매니페스트 형식의 항목입니다. |
4. 새 언어에 대한 형식/항목을 추가합니다. | 허용되지 않습니다. | 허용되지 않습니다. |
5. 기존 형식/항목을 제거합니다. | 사례 3과 유사하게 작동합니다. RC 구성 데이터를 사용하여 형식이 LN 파일과 연결된 .mui 파일에 있는지 확인합니다. 그렇지 않은 경우 LN 파일에서 형식/항목을 제거할 수 있습니다. 그렇지 않으면 이 LN 파일과 연결된 .mui 파일에 형식/항목이 있으면 제거가 허용되지 않습니다. | 제거할 수 있는 유일한 형식은 파일 버전, RC 구성 데이터, Side-by-side 어셈블리 XML 매니페스트입니다. 또한 이러한 형식의 항목만 제거할 수 있습니다. |
6. RC 구성 데이터에 포함되지 않은 형식(예: 버전, 병렬 어셈블리 XML 매니페스트 또는 RC 구성 데이터 자체)을 추가/삭제/업데이트합니다. | 허용. | 허용. |
7. TYPELIB, reginst 등과 같은 지역화할 수 없는 데이터의 기타 업데이트입니다. | LN 파일의 형식 또는 항목을 업데이트하고, 지역화할 수 없는 것으로 처리하고, RC 구성 데이터에 새 형식 또는 항목을 추가합니다. | 적용할 수 없습니다. |
8. RC 구성 데이터를 추가합니다. | 수행할 수 있지만 RC 구성 데이터의 무결성은 확인되지 않습니다. | 수행할 수 있지만 RC 구성 데이터의 무결성은 확인되지 않습니다. |
예제
예를 들어 리소스업데이트하는
메모
winbase.h 헤더는 UPDATEResource를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
개념
LoadIcon
LoadString
lockResource
메이킨트레소스
MAKELANGID
기타 리소스
참조