다음 예제에서는 하나의 실행 파일을 손에서 대화 상자 리소스를 복사 합니다.EXE, 다른 발입니다.다음이 단계를 수행 하 여 EXE:
다음 코드는 이러한 단계를 구현.
HRSRC hResLoad; / / 로드 된 리소스 핸들 hExe;에 대 한 핸들 / / 기존 처리 합니다.EXE 파일 HRSRC hRes; / / 핸들/ptr. res. 정보. hExe 처리 hUpdateRes; / / 업데이트 리소스 핸들 char * lpResLock; / / 포인터 리소스 데이터 BOOL 결과;
/ / 로드 합니다.복사 대화 상자를 포함 하는 EXE 파일.
hExe = LoadLibrary("hand.exe");
경우 (hExe = = NULL) {ErrorHandler ("로드할 수 없습니다 exe.");
} / / 대화 상자 리소스에서 찾을 합니다.EXE 파일입니다.
hRes FindResource (hExe, "AboutBox", RT_DIALOG); =
경우 (hRes = = NULL) {ErrorHandler ("찾을 수 없습니다 대화 상자.");
} / / 글로벌 메모리에 대화 상자를 로드 합니다.
hResLoad = LoadResource (hExe, hRes);
경우 (hResLoad = = NULL) {ErrorHandler ("로드할 수 없습니다 대화 상자.");
} / / 글로벌 메모리에 대화 상자를 잠금.
lpResLock = LockResource(hRes);
경우 (lpResLock = = NULL) {ErrorHandler ("수 없는 잠금 대화 상자.");
} / / 대화 상자 리소스를 추가할 파일을 엽니다.
hUpdateRes = BeginUpdateResource ("foot.exe", FALSE);
경우 (hUpdateRes = = NULL) {ErrorHandler ("열 수 없습니다 쓰기 파일.");
} / / 업데이트 목록에 대화 상자 리소스를 추가 합니다.
결과 = UpdateResource (hUpdateRes, / 업데이트 리소스 처리 RT_DIALOG, / / / 변경 대화 상자 리소스 "AboutBox" / / 대화 상자 이름 MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL) / / 중립 언어
lpResLock, / / ptr 리소스 정보 SizeofResource (hExe, hRes)); / / 자원 정보의 크기.
만약 (결과 = FALSE) {ErrorHandler ("추가 하지 못했습니다 리소스.");
} / / 발에 변경 내용을 기록 합니다.EXE 한 다음 닫습니다.
if (!.EndUpdateResource (hUpdateRes, FALSE)) {ErrorHandler ("쓸 수 없습니다 파일을 변경 합니다.");
} / / 정리 합니다.
if (!.FreeLibrary(hExe)) {ErrorHandler ("수 없는 무료 실행.");
}