Partilhar via


Usando parâmetros Replaceable (do registrador pré-processador)

Parâmetros substituíveis permitir que o cliente do registrador especificar em time de execução dados.Para fazer isso, o registrador mantém um MAP de substituição no qual ele insere os valores associados com os parâmetros substituíveis em seu script.Registrador torna essas entradas em time de execução.

Usando % módulo %

The Assistente de controle do ATL gera automaticamente um script que usa %MODULE%. ATL usa esse parâmetro de substituição para o local real do EXE ou DLL do servidor.

Concatenando em time de execução dados com dados de script

Outro uso o pré-processador é concatenar dados de time de execução com dados de script.Por exemplo, suponha que uma entrada é necessária que contém um caminho completo para um módulo com a seqüência de caracteres", 1"anexada ao participante. Primeiro, defina a expansão do seguinte:

'MySampleKey' = s '%MODULE%, 1'

Então, antes de chamar um script processamento métodos listados no Chamar scripts, adicionar uma substituição para o MAP:

TCHAR szModule[_MAX_PATH];
::GetModuleFileName(_AtlBaseModule.GetModuleInstance(), szModule, _MAX_PATH);
p->AddReplacement(OLESTR("Module"), T2OLE(szModule));   

Durante a análise do script, o registrador expande '%MODULE%, 1' para c:\mycode\mydll.dll, 1.

Observação:

Em um script de registrador, 4 K é o dimensionar máximo de token.(Um toke n é qualquer elemento reconhecível na sintaxe.) Isso inclui tokens que foram criados ou expandidos o pré-processador.

Observação:

Para substituir valores de substituição em time de execução, remover a telefonar no script para o DECLARE_REGISTRY_RESOURCE or DECLARE_REGISTRY_RESOURCEID macro.Em vez disso, substitua-o por sua própria UpdateRegistry método que chama CAtlModule::UpdateRegistryFromResourceD or CAtlModule::UpdateRegistryFromResourceSe passe a matriz de _ATL_REGMAP_ENTRY estruturas.A matriz de _ATL_REGMAP_ENTRY deve ter pelo menos uma entrada é definida como {NULO,NULO}, e essa entrada deve ser sempre a última entrada.Caso contrário, um erro de violação de acesso será gerado quando UpdateRegistryFromResource é chamado.

Observação:

Ao criar um projeto que produz um executável, o ATL adiciona automaticamente entre aspas o nome do caminho criado em time de execução com o MÓDULO % parâmetro do script de registrador.Não o nome do caminho para incluir as aspas, use o novo % MODULE_RAW % parâmetro em vez disso.

Ao criar um projeto que produz uma DLL, ATL não adicionará aspas para o nome do caminho se MÓDULO % ou % MODULE_RAW % é usado.

Consulte também

Referência

Criando scripts de registrador