Przy użyciu parametrów wymiennych (Sekretarz Preprocessor)

Parametrów zastępowalnych umożliwiają Registrar klienta do określenia czasu danych.Aby to zrobić, Sekretarz utrzymuje mapę zastąpienia, do którego ona wprowadza wartości skojarzone z parametrów zastępowalnych w skrypcie.Sekretarz sprawia, że te wpisy w czasie wykonywania.

Za pomocą modułu %

Kreatora kontroli ATL automatycznie generuje skrypt używający %MODULE%.ATL używa tego parametrów wymiennych faktyczną lokalizację serwera biblioteki DLL lub EXE.

Konkatenowanie danych czasu wykonywania skryptu danych

Użyj innego preprocesora jest złączyć dane czasu danymi skryptu.Załóżmy, że konieczne jest wpis, który zawiera pełną ścieżkę do modułu z ciągiem ", 1" dołączana na końcu.Najpierw należy zdefiniować następujące rozszerzenia:

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

Następnie, przed wywołaniem skryptu przetwarzania metod wymienionych w Wywoływanie skryptów, dodać zastępczy do mapy:

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

Podczas analizowania skrypt rozwija Sekretarz '%MODULE%, 1' do c:\mycode\mydll.dll, 1.

[!UWAGA]

W skrypcie sekretarza 4 K jest maksymalny rozmiar token.(Token jest każdy rozpoznawalny element w składni). Obejmuje to tokeny, które zostały utworzone lub rozwinięta przez preprocesora.

[!UWAGA]

Do wartości zastępczych podstawić w czasie wykonywania, należy usunąć wywołanie skryptu do DECLARE_REGISTRY_RESOURCE lub DECLARE_REGISTRY_RESOURCEID makro.Należy zastąpić własnymi UpdateRegistry metodę, która wywołuje CAtlModule::UpdateRegistryFromResourceD lub CAtlModule::UpdateRegistryFromResourceSi przekazać tablicy z _ATL_REGMAP_ENTRY struktury.Tablicy z _ATL_REGMAP_ENTRY musi mieć co najmniej jeden wpis, który jest ustawiona na {NULL,NULL}, ten wpis zawsze powinien być ostatniego zapisu.W przeciwnym razie będzie błąd naruszenia zasad dostępu generowane, gdy UpdateRegistryFromResource jest wywoływana.

[!UWAGA]

Podczas kompilowania projektu, która wyprowadza plik wykonywalny, ATL automatycznie dodaje znaki cudzysłowu wokół nazwy ścieżki utworzone w czasie wykonywania w modułu % skryptu sekretarza.Jeśli nie chcesz, aby nazwa ścieżki do znaków cudzysłowu, użyj nowej % MODULE_RAW % parametr w zamian.

Podczas kompilowania projektu, która wyprowadza biblioteki DLL, ATL nie będzie Dodawanie cudzysłowów do nazwa ścieżki, jeśli modułu % lub MODULE_RAW % jest używana.

Zobacz też

Informacje

Tworzenie skryptów w rejestrze