次の方法で共有


/DELAY (遅延読み込みのインポート設定)

/DELAY:UNLOAD
/DELAY:NOBIND

解説

/DELAY オプションは、DLL の遅延読み込みを制御します。

  • UNLOAD 修飾子は、DLL の明示的なアンロードをサポートするように遅延読み込みヘルパー関数に指定します。 インポート アドレス テーブル (IAT) は元の形式にリセットされ、IAT のポインターは無効になって上書きされます。

    UNLOAD を選択しない場合、FUnloadDelayLoadedDLL の呼び出しは失敗します。

  • NOBIND 修飾子は、バインドできる IAT を最終イメージに含めないようにリンカーに指定します。 既定では、遅延読み込みされる DLL に対してバインドできる IAT が作成されます。 生成されるイメージは静的にバインドできません。 (バインドできる IAT を含むイメージは、実行前に静的にバインドできます)。「/BIND」を参照してください。

    DLL がバインドされた場合、ヘルパー関数は、参照される各インポートに対して GetProcAddress を呼び出す代わりに、バインドされた情報を使用しようとします。 タイムスタンプまたは優先アドレスが、読み込まれた DLL のものと一致しない場合、ヘルパー関数はバインドされた IAT は古いと見なし、バインドされた IAT が存在しないかのように続行します。

    NOBIND を使用すると、プログラム イメージは大きくなりますが、DLL の読み込み時間は速くなります。 DLL をバインドしない場合は、NOBIND を使用すると、バインドされた IAT は生成されません。

DLL の遅延読み込みを指定するには、/DELAYLOAD オプションを使用します。

Visual Studio 開発環境でこのリンカー オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、「プロジェクトのプロパティの操作」を参照してください。

  2. [構成プロパティ][リンカー] を展開し、[詳細] を選択します。

  3. [DLL の遅延読み込み] プロパティを変更します。

このリンカーをコードから設定するには

参照

関連項目

リンカー オプションの設定

リンカー オプション