Atualização de recursos

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:

  1. Uso o função LoadLibrary para carregar o arquivo executável de mão.EXE.
  2. Use o FindResource e LoadResource funções para localizar e carregar o recurso de caixa de diálogo.
  3. Use a função LockResource para recuperar um ponteiro para os dados de recurso de caixa de diálogo.
  4. Use a função BeginUpdateResource para aberto um identificador atualização para febre.EXE.
  5. Use a função UpdateResource para copiar do recurso de caixa de diálogo de mão.EXE a pé.EXE.
  6. Use a função EndUpdateResource para concluir a atualização.

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."); 
}