次の方法で共有


置き換え可能パラメーター (レジストラーのプリプロセッサ) の使用

置き換え可能パラメーターは、レジストラー クライアントがランタイムのデータを指定することができます。これを行うには、レジストラーは、スクリプトの置き換え可能パラメーターに関連付けられた値を入力する置換マップを保持します。レジストラーは実行時に入力を行います。

を使用して %MODULE%

[ATL コントロール ウィザード] が自動的に %MODULE%を使用するスクリプトを生成します。ATL は、サーバー上の DLL または EXE の実際の場所でこの置き換え可能パラメーターを使用します。

スクリプトのデータの実行時のデータのバインド

プリプロセッサのもう一つの使用は、スクリプトのデータのランタイム データを連結することです。たとえば、最後に追加した文字列「, 1」が付いているモジュールの完全パスを含む。エントリが必要であるとします。最初に、次の拡張を定義する:

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

次に、スクリプトの開始に示すメソッドを処理するスクリプトの 1 つがを呼び出す前に置換をマップに追加します:

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

スクリプトの解析中、レジストラーは c:\mycode\mydll.dll, 1に '%MODULE%, 1' を展開します。

[!メモ]

レジストラー スクリプトでは、KB は、最大のトークンのサイズです。 (トークンは、構文を認識可能な要素です。これは、プリプロセッサによって作成された、または配置されたトークンが含まれています。

[!メモ]

実行時に置換値を代入するには、DECLARE_REGISTRY_RESOURCE または DECLARE_REGISTRY_RESOURCEID のマクロにスクリプトの呼び出しを削除します。代わりに、メソッドを CAtlModule::UpdateRegistryFromResourceDCAtlModule::UpdateRegistryFromResourceSを呼び出す置き換え、_ATL_REGMAP_ENTRY の構造体の配列を渡す。UpdateRegistry に独自のメソッドで。_ATL_REGMAP_ENTRY の配列は、{、}NULLNULL設定されていると、このエントリは常に最後のエントリです。1 文字以上のエントリが必要です。それ以外の場合は、アクセス違反のエラーが UpdateRegistryFromResource が呼び出された場合に生成されます。

[!メモ]

プロジェクトをビルドしたときに出力が %MODULE% レジストラー スクリプト パラメーターの実行時に作成されるパス名の前後に実行可能ファイル、ATL 自動的に引用符を追加する。パス名に引用符がしない場合 %MODULE_RAW% に新しいパラメーターを使用します。

%MODULE%%MODULE_RAW% が使用されている場合は出力パス名が、ATL DLL に引用符を追加しないプロジェクトをビルドするとき。

参照

関連項目

レジストラー スクリプトの作成