Adicionar, excluir e substituir recursos

Aplicativos com freqüência devem adicionar, excluir ou substituir recursos em arquivos executáveis. Dois métodos podem ser usados para realizar essas tarefas. A primeira é editar o arquivo de definição de recurso, recompile os recursos e adicionar os recursos recompilados para arquivo executável do aplicativo. O segundo método é copiar os dados de recurso diretamente no arquivo executável do aplicativo.

Por exemplo, para localizar um aplicativo de língua inglesa para uso na Noruega, pode ser necessário substituir a caixa de diálogo inglês com um usando norueguês. Um desenvolvedor cria uma caixa de diálogo apropriada usando um editor de caixa de diálogo ou escrevendo um modelo no arquivo de definição de recurso. O desenvolvedor então recompila os recursos e adiciona novos recursos para o arquivo executável do aplicativo.

Se uma caixa de diálogo apropriada existe na forma binária, no entanto, o desenvolvedor pode copiar os dados diretamente para o arquivo executável está sendo localizado usando três funções do Win32. A função BeginUpdateResource cria um identificador de atualização para o arquivo executável, cujos recursos devem ser alteradas. A função UpdateResource usa esse identificador para adicionar, excluir ou substituir um recurso no arquivo executável. A EndUpdateResource função fecha o identificador.

Depois de um atualização de identificador para um arquivo executável é criado por BeginUpdateResource, um aplicativo pode usar UpdateResource repetidamente para alterar os dados do recurso. Cada chamada para UpdateResource contribui para uma lista interna de adições, exclusões e substituições, mas na verdade não gravar os dados para o arquivo executável. Imediatamente antes de fechar o identificador atualização, EndUpdateResource grava as mudanças acumuladas para o arquivo executável.

Às vezes, um aplicativo deve copiar os recursos ou encontrar tamanhos de recurso. O LoadLibrary função fornece um identificador de módulo para um arquivo executável, cujos recursos estão a ser copiado e a função LockResource fornece um ponteiro para os dados de recursos no módulo especificado. A função SizeofResource retorna o tamanho, em bytes, de um recurso especificado.

Index