/ENTRY (エントリ ポイント シンボル)
更新 : 2007 年 11 月
/ENTRY:function
解説
指定項目 :
- function
.exe ファイルまたは DLL に対してユーザーが定義した開始アドレスを指定する関数。
解説
/ENTRY オプションは、.exe ファイルまたは DLL の開始アドレスのエントリ ポイント関数を指定します。
指定する関数は、呼び出し規約 __stdcall で定義されている必要があります。パラメータと戻り値は必ず、Win32 API 内で定義されている WinMain (.exe ファイルの場合) または DllEntryPoint (DLL ファイルの場合) と同じように定義します。エントリ ポイントの設定は、リンカに任せることをお勧めします。このようにすると、C のランタイム ライブラリが正確に初期化され、静的オブジェクト用の C++ のコンストラクタが実行されます。
既定では、先頭アドレスは C のランタイム ライブラリ内の関数名になります。リンカは、プログラムの属性に応じて関数名を選択します。次の表は、関数名とそれに対応する既定のアプリケーションです。
関数名 |
既定 |
---|---|
mainCRTStartup (または wmainCRTStartup) |
/SUBSYSTEM:CONSOLE を使ってビルドされたアプリケーション。main 関数 (または wmain 関数) を呼び出します。 |
WinMainCRTStartup (または wWinMainCRTStartup) |
/SUBSYSTEM:WINDOWS を使ってビルドされたアプリケーション。WinMain 関数 (または wWinMain 関数) を呼び出します。この場合、WinMain (または wWinMain) は __stdcall で定義されている必要があります。 |
_DllMainCRTStartup |
DLL ファイル。DllMain 関数がある場合は、この関数を呼び出します。この場合、DllMain は __stdcall で定義されている必要があります。 |
/DLL オプションまたは /SUBSYSTEM オプションを指定しない場合は、main または WinMain が定義されているかどうかに応じて、サブシステムおよびエントリ ポイントが選択されます。
main 関数、WinMain 関数、および DllMain 関数の 3 つの関数は、ユーザー定義のエントリ ポイントの形式です。
マネージ イメージを作成する場合は、/ENTRY で指定された関数に、(LPVOID var1, DWORD var2, LPVOID var3) の署名が必要です。
独自の DllMain エントリ ポイントを定義する方法については、「ランタイム ライブラリの動作」を参照してください。
Visual Studio 開発環境でこのリンカ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「Visual C++ プロジェクトのプロパティの設定」を参照してください。
[リンカ] フォルダをクリックします。
[詳細] プロパティ ページをクリックします。
[エントリ ポイント] プロパティを変更します。
このリンカをコードから設定するには
- EntryPointSymbol を参照してください。