Aktualizácia zdrojov

V nasledujúcom príklade prostriedok dialógové okno pole skopíruje jeden spustiteľný súbor ručne.EXE do druhého, nohy.EXE pomocou nasledujúcich krokov:

  1. Použitie funkcia LoadLibrary funkcia načítať spustiteľný súbor ručne.EXE.
  2. Použite funkcie FindResource a LoadResource vyhľadať a načítať dialógové okno pole zdrojov.
  3. Na načítanie smerník na dialógové okno pole zdroja údajov použiť funkciu LockResource.
  4. Funkcia BeginUpdateResource otvoriť aktualizácia rukoväť na nohy.EXE.
  5. Použite UpdateResource funkciu skopírovať dialógové okno pole zdrojov z RÚK.EXE nohy.EXE.
  6. Na dokončenie aktualizácie použiť funkciu EndUpdateResource.

Nasledujúci kód implementuje krokov.

HRSRC hResLoad;     / / zvládnuť naložené zdrojov popisovač hExe;        / / zvládnuť existujúcich.Súbor EXE HRSRC hRes;         / / rukoväť a ptr. k res. info. v hExe RUKOVÄŤ hUpdateRes;  / / update zdrojov rukoväť char * lpResLock;    / / ukazovateľ na zdroj údajov BOOL výsledok; 
 
/ / Načítať.EXE súbor, ktorý obsahuje dialógovým oknom, ktoré chcete kopírovať. 
hExe = LoadLibrary("hand.exe"); 
 
Ak (hExe == NULL) {ErrorHandler („Nepodarilo sa načítať exe."); 
} / / Prostriedok vyhľadajte v dialógovom poli v.Súbor EXE. 
hRes = FindResource (hExe, "AboutBox", RT_DIALOG); 
 
Ak (hRes == NULL) {ErrorHandler ("nenašiel dialógovom."); 
} / / Načítanie dialógovým oknom do globálneho pamäte. 
hResLoad = LoadResource (hExe, hRes); 
 
Ak (hResLoad == NULL) {ErrorHandler („Nepodarilo sa načítať dialógové okno."); 
} / / Zamknutie dialógového okna do globálneho pamäte. 
lpResLock = LockResource(hRes); 
 
Ak (lpResLock == NULL) {ErrorHandler ("mohol zámok dialógovým oknom."); 
} / / Otvoriť súbor, ku ktorému chcete pridať políčka zdrojov dialógové okno. 
hUpdateRes = BeginUpdateResource ("foot.exe", FALSE); 
 
Ak (hUpdateRes == NULL) {ErrorHandler („súbor sa nedá otvoriť pre zápis."); 
} / / Pridať dialógové okno pole zdrojov na aktualizáciu zoznamu. 
výsledok = UpdateResource (hUpdateRes, / / aktualizáciu zdrojov zvládnuť RT_DIALOG, / / zmena dialógovom poli zdroj "AboutBox", / / dialógové okno meno MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL) / / neutrálny jazyk
     lpResLock, / / ptr k prostriedku info SizeofResource (hExe, hRes)); / / size zdroj info. 
 
Ak (výsledok == FALSE) {ErrorHandler ("Nepodarilo sa pridať zdroj."); 
} / / Write zmeny na nohy.EXE a potom ho zatvorte. 
if (!.EndUpdateResource (hUpdateRes, FALSE)) {ErrorHandler ("nemohol zapisovať zmeny súboru."); 
} / / Vyčistiť. 
if (!.FreeLibrary(hExe)) {ErrorHandler ("mohol nie zadarmo spustiteľný."); 
}