/ENTRY 选项将某个入口点函数指定为 .exe 文件或 DLL 的起始地址。

必须定义该函数才能使用 __stdcall 调用约定。 参数和返回值取决于程序是控制台应用程序、Windows 应用程序还是 DLL。 建议让链接器设置入口点,以便正确初始化 C 运行时库,并执行静态对象的 C++ 构造函数。

默认情况下,起始地址是 C 运行时库中的函数名称。 链接器根据程序的属性选择起始地址,如下表所示。

以下项的默认值 WinMainCRTStartup(或 wWinMainCRTStartup) 使用 /SUBSYSTEM:WINDOWS 的应用程序;调用 WinMain (或 wWinMain ),必须定义为使用 __stdcall _DllMainCRTStartup 一个 DLL;如果存在则调用 DllMain ,必须将其定义为使用 __stdcall

如果未指定 /DLL /SUBSYSTEM 选项,则链接器会根据是定义了 main 还是 WinMain 来选择子系统和入口点。

函数 main WinMain DllMain 是用户定义入口点的三种形式。

创建托管映像时,指定给 /ENTRY 的函数必须具有 (LPVOID var1, DWORD var2, LPVOID var3) 的签名。

有关如何定义自己的 DllMain 入口点的信息,请参阅 DLL 和 Visual C++ 运行时库行为

在 Visual Studio 开发环境中设置此链接器选项

  • 打开项目的“属性页” 对话框。 有关详细信息,请参阅 在 Visual Studio 中设置 C++ 编译器和生成属性

  • 选择“配置属性”>“链接器”>“高级”属性页。

  • 修改“入口点”属性。

    以编程方式设置此链接器选项

  • 请参阅 EntryPointSymbol
  • MSVC 链接器参考
    MSVC 链接器选项