仅使用wWinMain MSVC 2019的链接器错误未解析的外部符号

时间:2019-07-06 17:31:22

标签: c++ c winapi entry-point

这是我唯一的代码:

#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桌面应用程序”(或类似内容)模板创建的单独项目中工作。

但是我收到带有以下消息的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一起使用。我创建了一个“空项目”,并且在“源文件”目录中只有一个“ main.cpp”文件。

有人可以帮助我尝试诊断这里出什么问题吗?我没有运气来阅读msdn /在网络上寻找解决方案,这让我感到非常沮丧,因为我只是想在这里起步。

谢谢。

1 个答案:

答案 0 :(得分:1)

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

Subsystem Windows

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

如果您有一个WinMain()入口点(对于Unicode模式,则是wWinMain()),则意味着您正在瞄准Windows子系统。

相关问题