只有 wWinMain MSVC 2019 的链接器错误无法解析的外部符号

Linker error unresolved external symbol with only wWinMain MSVC 2019

这是我唯一的代码:

#include <windows.h>

int APIENTRY wWinMain(
    _In_ HINSTANCE hInstance,
    _In_opt_ HINSTANCE hPrevInstance,
    _In_ LPWSTR pCmdLine,
    _In_ int nCmdShow)
{
    OutputDebugStringA("Hello\n");

    return 0;
}

具有完全相同签名的 wWinMain 函数在我使用 "Windows Desktop Application"(或其他)模板创建的单独项目中工作。

但是我收到了一个 LNK2019 消息:

unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)

来自MSVCRTD.lib(exe_main.obj)

我在 Windows 10 上使用 Visual Studio 2019 Community Edition 和 MSVC 2019。我创建了一个 "Empty Project" 并且 "Source Files" 中只有一个 "main.cpp" 文件=] 目录.

谁能帮我诊断一下这里可能出了什么问题?我没有运气阅读 msdn/searching 网上的解决方案,这非常令人沮丧,因为我只是想在这里开始。

谢谢。

在链接器设置中将子系统设置为 Windows(对于所有配置和目标)。

Visual Studio 可以针对不同的 Windows subsystems 进行编译,每个都需要自己的程序入口点。显示“_main not found”的错误表明您的子系统设置为控制台,因为链接器正在寻找 main() 函数。

如果您有 WinMain() 入口点(或 wWinMain() 用于 Unicode 模式),则意味着您的目标是 Windows 子系统。