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