这是我唯一的代码:
#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 /在网络上寻找解决方案,这让我感到非常沮丧,因为我只是想在这里起步。
谢谢。
答案 0 :(得分:1)
在链接器设置中将“子系统”设置为Windows(用于所有配置和目标)。
Visual Studio可以针对不同的Windows subsystems进行编译,每个Windows都需要自己的程序入口点。错误消息“ _main not found
”表明您的子系统已设置为控制台,因为链接程序正在寻找main()
函数。
如果您有一个WinMain()
入口点(对于Unicode模式,则是wWinMain()
),则意味着您正在瞄准Windows子系统。