我们什么时候应该设置 C++ Windows 桌面应用程序的入口点?

When should we set the C++ Windows desktop application's entry point?

对于为 C++ 应用程序设置入口点的最佳做法是什么,我有点困惑,我试图找到一些答案,但我所看到的一切都涉及 如何 这样做而不是 为什么 .

假设我有一个 Windows 具有 2 个构建配置的桌面应用程序:调试和发布。 Debug 具有子系统 SYSTEM:CONSOLE,因此我可以 运行 并在控制台 window 中查看特定日志,而 Release 具有子系统 SYSTEM:WINDOWS.

默认情况下,Debug 的入口点为 main,而 Release 的入口点为 WinMain。这意味着在我的 main.cpp 中定义 main(args)WinMain(args)。以下是我对此的一些疑问:

我会说两者使用相同的入口点并完全跳过控制台构建。而是使用 VS 调试控制台。

您唯一会使用自定义入口点的情况是您根本不使用 MS C 运行时。而且我从来没有理由这样做。