O exemplo a seguir copia um recurso de caixa de diálogo de um arquivo executável, mão.EXE, para outro, pé.EXE, siga estas etapas:
O código a seguir implementa estes passos.
HResLoad HRSRC; / / identificador para recurso carregado identificador hExe; / / manipular a existente.Arquivo EXE HRSRC hRes; / / alça/ptr. para informação de RES.. em hExe lidar com hUpdateRes; / / char de identificador de recurso de actualização * lpResLock; / / Ponteiro para recursos dados BOOL resultado;
/ / Carregar o.Exe que contém a caixa de diálogo que você deseja copiar.
hExe = LoadLibrary("hand.exe");
se (hExe = = NULL) {ErrorHandler ("não foi possível carregar exe.");
} / / Localize o recurso de caixa de diálogo na.Arquivo EXE.
hRes = FindResource (hExe, "AboutBox", RT_DIALOG);
se (hRes = = NULL) {ErrorHandler ("não foi possível localizar a caixa de diálogo.");
} / / Carregar a caixa de diálogo na memória global.
hResLoad = LoadResource (hExe, hRes);
se (hResLoad = = NULL) {ErrorHandler ("não foi possível carregar a caixa de diálogo.");
} / / Travar a caixa de diálogo na memória global.
lpResLock = LockResource(hRes);
se (lpResLock = = NULL) {ErrorHandler ("poderia não caixa de diálogo de bloqueio.");
} / / Abrir o arquivo ao qual você deseja adicionar o recurso de caixa de diálogo.
hUpdateRes = BeginUpdateResource ("foot.exe", FALSE);
se (hUpdateRes = = NULL) {ErrorHandler ("não foi possível abrir arquivo para escrita.");
} / / Adicionar o recurso de caixa de diálogo para a lista de atualização.
resultado = UpdateResource (hUpdateRes, / / atualização recurso identificador RT_DIALOG, / / change recurso caixa de diálogo "AboutBox", / / caixa de diálogo nome MAKELANGID (LANG_NEUTRAL, SUBLANG_PORTUGUESE), / / neutro linguagem
lpResLock, / / ptr para informações do recurso SizeofResource (hExe, hRes)); / / tamanho da informação de recurso.
se (resultado = = FALSE) {ErrorHandler ("não foi possível adicionar recurso.");
} / / Gravar alterações em pé.EXE e, em seguida, fechá-lo.
if (!.EndUpdateResource (hUpdateRes, FALSE)) {ErrorHandler ("não foi possível gravar as alterações para o arquivo.");
} / / Limpeza.
if (!.FreeLibrary(hExe)) {ErrorHandler ("poderia não livre executável.");
}