Nell'esempio seguente viene copiato una risorsa di casella di dialogo da un file eseguibile, la mano.EXE, a un altro, il piede.EXE, attenendosi alla seguente procedura:
Il codice seguente implementa questi passaggi.
HResLoad HRSRC; / / handle di risorsa caricato HANDLE hExe; / / handle esistenti.File EXE HRSRC HRESULT; / / handle/ptr. Info termoresistenza. nel hExe gestire hUpdateRes; / / update char handle di risorsa * lpResLock; / / puntatore al risultato di risorse dati BOOL;
/ / Carica il.File EXE che contiene la finestra di dialogo che si desidera copiare.
hExe = LoadLibrary("hand.exe");
Se (hExe = = NULL) {ErrorHandler ("Impossibile caricare exe.");
} / / Individuare la risorsa di casella di dialogo nella.File EXE.
HRESULT = FindResource (hExe, "AboutBox", RT_DIALOG);
Se (HRESULT = = NULL) {ErrorHandler ("non poteva individuare nella finestra di dialogo.");
} / / Carica nella finestra di dialogo in memoria globale.
hResLoad = LoadResource (hExe, HRESULT);
Se (hResLoad = = NULL) {ErrorHandler ("Impossibile caricare nella finestra di dialogo.");
} / / Lock nella finestra di dialogo in memoria globale.
lpResLock = LockResource(hRes);
Se (lpResLock = = NULL) {ErrorHandler ("potrebbe non nella finestra di dialogo di blocco.");
} / / Aprire il file a cui si desidera aggiungere la risorsa di casella di dialogo.
hUpdateRes = BeginUpdateResource ("foot.exe", FALSE);
Se (hUpdateRes = = NULL) {ErrorHandler ("Impossibile aprire il file per la scrittura.");
} / / Aggiungi risorsa casella di dialogo all'elenco di aggiornamento.
risultato = UpdateResource (hUpdateRes, / / aggiornamento risorsa handle RT_DIALOG, / / change risorsa finestra di dialogo casella "AboutBox", / / nella finestra di dialogo nome MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL), / / neutrale lingua
lpResLock, / / ptr info risorse SizeofResource (hExe, HRESULT)); / / dimensione di info risorse.
Se (risultato = = FALSE) {ErrorHandler ("Impossibile aggiungere risorse.");
} / / Write modifiche al piede.EXE e chiuderla.
if (!.EndUpdateResource (hUpdateRes, FALSE)) {ErrorHandler ("Impossibile scrivere le modifiche al file.");
} / / Clean up.
if (!.FreeLibrary(hExe)) {ErrorHandler ("potrebbe non liberi eseguibile.");
}