리소스 추가, 삭제 및 바꾸기
애플리케이션은 실행 파일에서 리소스를 자주 추가, 삭제 또는 교체해야 합니다. 이러한 작업을 수행하는 데 두 가지 메서드를 사용할 수 있습니다. 첫 번째는 리소스 정의 파일을 편집하고, 리소스를 다시 컴파일하고, 다시 컴파일된 리소스를 애플리케이션의 실행 파일에 추가하는 것입니다. 두 번째 방법은 리소스 데이터를 애플리케이션의 실행 파일로 직접 복사하는 것입니다.
예를 들어 노르웨이에서 사용할 영어 애플리케이션을 지역화하려면 영어 대화 상자를 노르웨이어를 사용하는 대화 상자로 바꿔야 할 수 있습니다. 개발자는 대화 상자 편집기를 사용하거나 리소스 정의 파일에 템플릿을 작성하여 적절한 대화 상자를 만듭니다. 그런 다음 개발자는 리소스를 다시 컴파일하고 새 리소스를 애플리케이션의 실행 파일에 추가합니다.
그러나 이진 형식으로 적절한 대화 상자가 있는 경우 개발자는 다음 함수를 사용하여 지역화되는 실행 파일에 직접 데이터를 복사할 수 있습니다. BeginUpdateResource 함수는 리소스를 변경해야 하는 실행 파일에 대한 업데이트 핸들을 만듭니다. UpdateResource 함수는 이 핸들을 사용하여 실행 파일의 리소스를 추가, 삭제 또는 대체합니다. EndUpdateResource 함수는 핸들을 닫습니다.
BeginUpdateResource에서 실행 파일에 대한 업데이트 핸들을 만든 후 애플리케이션은 UpdateResource를 반복적으로 사용하여 리소스 데이터를 변경할 수 있습니다. UpdateResource에 대한 각 호출은 내부 추가, 삭제 및 대체 목록에 기여하지만 실제로는 실행 파일에 데이터를 쓰지 않습니다. 업데이트 핸들을 닫기 직전에 EndUpdateResource 는 누적된 변경 내용을 실행 파일에 씁니다.
경우에 따라 애플리케이션은 다른 파일에서 리소스를 복사해야 합니다. 리소스 업데이트는 파일에서 리소스 데이터 및 해당 크기를 가져오는 예제를 보여 줍니다.