Partager via


Utilisation de paramètres remplaçables (le préprocesseur du registre)

Les paramètres remplaçables permettent au client d'un registre pour spécifier les données à l'exécution.Pour cela, le registre met à jour une table de remplacement dans laquelle il écrit les valeurs associées aux paramètres remplaçables dans votre script.Le registre de ces entrées au moment de l'exécution.

Utilisation %MODULE%

L'Assistant Contrôle ATL génère automatiquement un script qui utilise %MODULE%.ATL utilise ce paramètre remplaçable pour l'emplacement réel de la DLL ou du fichier EXE de votre serveur.

Concaténer des données à l'exécution avec des données de script

Une autre utilisation du préprocesseur est de concaténer des données à l'exécution avec des données de script.Par exemple, supposons qu'il a besoin d'une entrée qui contient un chemin d'accès complet à un module avec la chaîne « , 1 » ajouté à la fin.d'abord, définissez l'expansion suivante :

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

Ensuite, avant d'appeler un script du traitement des méthodes répertoriées dans appeler des scripts, ajoutez un remplacement au mappage :

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

Pendant l'analyse du script, le registre se développe '%MODULE%, 1' à c:\mycode\mydll.dll, 1.

[!REMARQUE]

Dans un script d'inscription, 4K est la taille maximale de jeton.(Le jeton d'Un est un élément reconnaissable dans la syntaxe.) Cela inclut le créées ou développées par le préprocesseur.

[!REMARQUE]

Pour remplacer les valeurs de remplacement au moment de l'exécution, supprimez l'appel du script vers la macro de DECLARE_REGISTRY_RESOURCE ou de DECLARE_REGISTRY_RESOURCEID .À la place, remplacez -le par votre propre méthode d' UpdateRegistry qui appelle CAtlModule::UpdateRegistryFromResourceD ou CAtlModule::UpdateRegistryFromResourceS, et passez votre tableau de structures de _ATL_REGMAP_ENTRY .Votre matrice de _ATL_REGMAP_ENTRY doit avoir au moins une entrée à laquelle est définiNULLNULL{,}, et cette entrée doit toujours être la dernière entrée.Sinon, une erreur de violation d'accès est générée lorsque UpdateRegistryFromResource est appelé.

[!REMARQUE]

Lors de la génération d'un projet que les sorties un fichier exécutable, ATL ajoute automatiquement des guillemets autour de le nom de chemin d'accès qui l'a créé au moment de l'exécution avec le paramètre de script d'inscription de %MODULE% .Si vous ne souhaitez pas que le chemin d'accès pour inclure des guillemets, utilisez le paramètre de %MODULE_RAW% à la place.

Lors de la génération d'un projet que les sorties une DLL, ATL ajouteront ne pas de guillemets au chemin d'accès si %MODULE% ou %MODULE_RAW% est utilisé.

Voir aussi

Référence

Créer des scripts d'inscription