Oppdatere ressurser

Følgende eksempel overfører en dialog boks-ressurs fra en kjørbar fil, hånd.EXE, til en annen, FOTEN.EXE, ved å følge denne fremgangsmåten:

  1. Bruk den LoadLibrary -funksjonen til å laste inn den kjørbare filen hånd.EXE.
  2. Bruk FindResource og LoadResource -funksjonene Finn og Last inn i dialogboksen-boksen ressursen.
  3. Bruke LockResource -funksjonen til å hente en peker til ressursdata for dialogboksen-boksen.
  4. Bruke BeginUpdateResource -funksjonen til å åpne en oppdatering referanse til FOTS.EXE.
  5. Bruke UpdateResource -funksjonen til å kopiere dialogboksen-boksen ressursen fra hånd.EXE til FOTS.EXE.
  6. Bruke EndUpdateResource -funksjonen for å fullføre oppdateringen.

Følgende kode implementerer denne fremgangsmåten.

HRSRC hResLoad;     / / håndtere til lastet ressurs HÅNDTAKET hExe;        / / håndtere i eksisterende.EXE-fil HRSRC hRes;         / / håndtak/ptr. til res. info. i hExe kan du håndtere hUpdateRes;  / / oppdatere ressurs håndtaket char * lpResLock;    / / peker til ressursen data BOOL resultatet; 
 
/ / Load den.EXE-fil som inneholder dialogboksen som du vil kopiere. 
hExe = LoadLibrary("hand.exe"); 
 
Hvis (hExe == NULL) {feilbehandling ("kan ikke laste exe."); 
} / / Finn dialogboksen-boksen ressursen i den.EXE-fil. 
hRes = FindResource (hExe, "AboutBox", RT_DIALOG); 
 
Hvis (hRes == NULL) {feilbehandling ("finner ikke dialogboksen."); 
} / / Load dialogboksen i globale minnet. 
hResLoad = LoadResource (hExe, hRes); 
 
Hvis (hResLoad == NULL) {feilbehandling ("kan ikke laste inn dialogboksen."); 
} / / Låse dialogboksen på globale minne. 
lpResLock = LockResource(hRes); 
 
Hvis (lpResLock == NULL) {feilbehandling ("kunne ikke Lås dialogboksen."); 
} / / Åpne filen du vil legge til dialogboksen-boksen ressursen. 
hUpdateRes = BeginUpdateResource ("foot.exe", FALSE); 
 
Hvis (hUpdateRes == NULL) {feilbehandling ("kan ikke åpne filen for skriving."); 
} / / Legge til dialogboksen-boksen ressursen i oppdateringslisten. 
resultatet = UpdateResource (hUpdateRes, / / oppdateringen ressurs håndtere RT_DIALOG, / / endre dialogboksen-boksen ressursen "AboutBox", / / i dialogboksen navn MAKELANGID (LANG_NEUTRAL, SUBLANG_NEUTRAL), / / nøytral språk
     lpResLock, / / ptr til ressursen info SizeofResource (hExe, hRes)); / / size av ressurs-info. 
 
Hvis (resultatet == FALSE) {feilbehandling ("kan ikke legge til ressursen."); 
} / / Skrive endringene til FOTS.EXE og deretter lukke den. 
if (!.EndUpdateResource (hUpdateRes, FALSE)) {feilbehandling ("kan ikke skrive endringer til filen."); 
} / / Opprydding av salgsoppdateringshistorikk. 
if (!.FreeLibrary(hExe)) {feilbehandling ("ikke kunne frigjør kjørbare."); 
}