次の方法で共有


ATL プロジェクトで CRT にリンクする

C ランタイム ライブラリ (CRT) には、ATL 開発中のプログラミングをはるかに簡単にする、便利な関数が多数用意されています。 すべての ATL プロジェクトは、CRT ライブラリにリンクしています。 リンク メソッドの利点と欠点については、「CRT へのリンクに使用されるメソッドの長所と短所」を参照してください。

プログラム イメージで CRT にリンクする場合の影響

CRT に静的にリンクしている場合、CRT からのコードは実行可能イメージに配置されるため、イメージを実行するためにシステム上に CRT DLL が存在している必要はありません。 CRT に動的にリンクする場合、コード自体ではなく、CRT DLL 内のコードへの参照がイメージに配置されます。 特定のシステムでイメージを実行するには、そのシステム上に CRT DLL が存在している必要があります。 CRT に動的にリンクする場合でも、一部のコードが静的にリンクされていることがあります (たとえば、DllMainCRTStartup)。

イメージをリンクするときは、イメージの読み込み後にオペレーティング システムにより呼び出されるエントリポイントを明示的または暗黙的に指定します。 DLL の場合、既定のエントリポイントは DllMainCRTStartup です。 EXE の場合は WinMainCRTStartup です。 既定値は、/ENTRY リンカーオプションを使用してオーバーライドできます。 CRT は、DllMainCRTStartupWinMainCRTStartupwWinMainCRTStartup (EXE の Unicode エントリポイント) の実装を提供します。 CRT によって提供されるこれらのエントリポイントは、グローバル オブジェクトのコンストラクターを呼び出し、一部の CRT 関数によって使用されるその他のデータ構造体を初期化します。 このスタートアップ コードは、静的にリンクされている場合、イメージに 25,000 が追加されます。 動的にリンクされている場合、ほとんどのコードは DLL 内にあるため、イメージのサイズは小さいままです。

詳細については、リンカーのトピック「/ENTRY (エントリポイント シンボル)」を参照してください。

最適化オプション

リンカーオプション /OPT:NOWIN98 を使用すると、既定の ATL コントロールをさらに 10,000 小さくすることができますが、これにより Windows 98 システムでの読み込み時間が長くなります。 リンクオプションの詳細については、「/OPT (最適化)」を参照してください。

関連項目

ATL および C ランタイム コードによるプログラミング
DLL と Visual C++ ランタイム ライブラリの動作