Visual c++ 为什么不需要/ENTRY链接器选项?

Visual c++ 为什么不需要/ENTRY链接器选项?,visual-c++,linker,msvcrt,Visual C++,Linker,Msvcrt,我注意到,在VC++控制台项目的默认链接器设置中,“入口点”保留为空。在我看到的生成的可执行文件上使用dumpbin entry point (004110FF) @ILT+250(_mainCRTStartup) 我还检查了项目属性的命令行选项,没有给出“/ENTRY”链接器选项 那么链接器如何确定生成的可执行文件的入口点呢?我可以想出两个选择: 1) CRT中隐藏着一些“#pragma注释(链接器,/enty:_mainCRTStartup”) 源代码。但我没有找到它 2) 链接器本身从“

我注意到,在VC++控制台项目的默认链接器设置中,“入口点”保留为空。在我看到的生成的可执行文件上使用dumpbin

entry point (004110FF) @ILT+250(_mainCRTStartup)
我还检查了项目属性的命令行选项,没有给出“/ENTRY”链接器选项

那么链接器如何确定生成的可执行文件的入口点呢?我可以想出两个选择:

1) CRT中隐藏着一些“#pragma注释(链接器,/enty:_mainCRTStartup”) 源代码。但我没有找到它

2) 链接器本身从“/SUBSYSTEM:CONSOLE”选项派生此信息。 因此,Visual Studio中的选项将覆盖link.exe所做的选择


你知道吗?

第二个猜测是正确的。链接器本身从给定的其他设置(例如/子系统:控制台)中获取此信息。请参阅。因此,只有当您想提供除_mainCRTStartup之外的入口点时,才需要项目属性中的选项。

对不起,我自己找到了答案。只是分享我的发现:我的第二次猜测是正确的。链接器本身从其他给定设置(例如/子系统:控制台)中获取此信息。请参阅MSDN,因此仅当您希望提供除_mainCRTStartup之外的入口点时,才需要项目属性中的选项。您应该添加注释作为对自己问题的回答,然后在系统允许时接受它。