使用可替换参数(控制器的预处理器)
可替换参数允许管理员的客户端指定运行时数据。 为此,管理员维护其输入值与在脚本中的可替换参数的替换映射。 管理员进行这些项在运行时。
使用%MODULE%
ATL控件向导 自动生成使用 %MODULE%的脚本。 ATL为您的服务器DLL或EXE的物理位置使用此可替换参数。
连接与脚本数据的运行时数据
给预处理器的还可以连接与脚本数据的运行时数据。 例如,假设项所需的包含一个完整路径一个字符串中的“, 1”的模块追加在末尾。 首先,定义以下展开:
'MySampleKey' = s '%MODULE%, 1'
然后,在调用操作方法的一个预先该脚本列表中 调用脚本,请将替换为映射:
TCHAR szModule[_MAX_PATH];
::GetModuleFileName(_AtlBaseModule.GetModuleInstance(), szModule, _MAX_PATH);
p->AddReplacement(OLESTR("Module"), T2OLE(szModule));
在分析该脚本过程中,控制器外接 '%MODULE%, 1' 到 c:\mycode\mydll.dll, 1。
备注
在注册器脚本,4K是最大标记范围。(标记是语法中的所有可识别的元素。)这包括由预处理器或创建的扩展的标记。
备注
若要替换替换值在运行时,撤消在脚本调用 DECLARE_REGISTRY_RESOURCE 或 DECLARE_REGISTRY_RESOURCEID 宏。相反,请在调用 CAtlModule::UpdateRegistryFromResourceD 或 CAtlModule::UpdateRegistryFromResourceS的 UpdateRegistry 方法替换为,并将您的一些 _ATL_REGMAP_ENTRY 结构。您的数组 _ATL_REGMAP_ENTRY 必须具有至少设置的一项NULL,NULL{},因此,此项应总是最后一项。否则,那么,当 UpdateRegistryFromResource 调用,访问冲突错误将生成。
备注
在生成输出可执行文件,ATL在路径名称周围自动添加引号的项目创建了在运行时会 %MODULE% 注册器脚本参数。如果不希望路径名包括引号,则使用新的 %MODULE_RAW% 参数。
在生成输出DLL,ATL不添加引号传递到路径名的项目时,如果使用 %MODULE% 或 %MODULE_RAW%。