Aggiunta, eliminazione e sostituzione delle risorse

Applicazioni spesso necessario aggiungere, eliminare o sostituire le risorse in file eseguibili. Due metodi possono essere utilizzati per eseguire queste attività. Il primo è quello di modificare il file di definizione delle risorse, ricompilare le risorse e aggiungere le risorse ricompilate al file eseguibile dell'applicazione. Il secondo metodo consiste nel copiare i dati delle risorse direttamente nel file eseguibile dell'applicazione.

Ad esempio, per localizzare un'applicazione di lingua inglese per l'uso in Norvegia, può essere necessario sostituire la finestra di dialogo inglese con uno utilizzando norvegese. Uno sviluppatore crea una finestra di dialogo appropriata utilizzando un editor di casella di dialogo o un modello di scrittura nel file di definizione delle risorse. Lo sviluppatore poi ricompila le risorse e aggiunge le nuove risorse al file eseguibile dell'applicazione.

Se non esiste un dialogo appropriata in forma binaria, tuttavia, lo sviluppatore può copiare i dati direttamente al file eseguibile essere localizzato utilizzando tre funzioni Win32. La funzione BeginUpdateResource crea un handle di aggiornamento per il file eseguibile, le cui risorse sono a essere cambiato. La funzione UpdateResource utilizza questo handle per aggiungere, eliminare o sostituire una risorsa in un file eseguibile. La funzione EndUpdateResource chiude l'handle.

Dopo l'aggiornamento di un handle per un file eseguibile è stato creato da BeginUpdateResource, un'applicazione può utilizzare UpdateResource ripetutamente di apportare modifiche ai dati delle risorse. Ogni chiamata a UpdateResource contribuisce a un elenco interno di aggiunte, le eliminazioni e sostituzioni, ma in realtà non scrivere i dati del file eseguibile. Immediatamente prima della chiusura dell'handle di aggiornamento, EndUpdateResource scrive le modifiche accumulate al file eseguibile.

A volte, un'applicazione deve copiare risorse o trovare le dimensioni delle risorse. La funzione LoadLibrary fornisce un handle del modulo a un file eseguibile, le cui risorse sono da copiare e la funzione LockResource fornisce un puntatore ai dati delle risorse nel modulo specificato. La funzione SizeofResource restituisce la dimensione, in byte, di una risorsa specificata.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index