サブシステム パラメータの主な意味は、実行可能ファイルをビルドするサブシステムを決定することです。コンソール アプリケーション、Windows アプリケーション、POSIX アプリケーション、デバイス ドライバなどになるかどうか。
ドキュメントによると、バージョン番号は、実行可能ファイルが必要とするオペレーティング システム (またはサブシステム) の最小バージョンを指定します。たとえば、6.0 (Windows Vista) を指定した場合、理論上、Windows XP は実行可能ファイルの実行を拒否します。これが実際に正しいかどうかは定かではありません。また、オペレーティング システムの最小バージョンをこのように指定することは一般的ではないと思います。
エントリ ポイントへの影響については、少し雑に説明されています。サブシステムの選択がデフォルトのエントリーポイントに影響を与えると言ったほうが正確でしょう。パラメータを使用して、このデフォルトをオーバーライドできます/ENTRY
。
に記載され/ENTRY
ているように、デフォルト設定は次のとおりです。
/SUBSYSTEM:CONSOLE
: mainCRTStartup (または wmainCRTStartup)
/SUBSYSTEM:WINDOWS
: WinMainCRTStartup (または wWinMainCRTStartup)
/DLL
: _DllMainCRTStartup
また、「/DLL または /SUBSYSTEM オプションが指定されていない場合、メインまたは WinMain が定義されているかどうかに応じて、リンカーはサブシステムとエントリ ポイントを選択します。」
IIRC、他のサブシステムにはデフォルトのエントリ ポイントがなく、/ENTRY
オプションを明示的に使用する必要があります。