另一个错误LNK2019:函数___tmainCRTStartup中引用未解析的外部符号_WinMain@16

Another error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

本文关键字:外部 WinMain@16 符号 LNK2019 错误 函数 另一个 tmainCRTStartup 引用      更新时间:2023-10-16

我知道这已经被问了一千次,但我无法解决这个简单的问题。

这是代码:

#include "windows.h"
extern "C"
{
    INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
    {
        return 0;
    }
}

子系统设置为 Windows (/SUBSYSTEM:WINDOWS) 。我有以下错误:

error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

导致此错误的原因是WinMain文件被定义为.h文件,因此它未包含在项目中。

问题是你的WinMain函数是在extern "C"块中声明的,这给了它 C 风格的链接。Microsoft Visual C++ 运行时期望有一个带有符号 _WinMain@16 的函数,这是需要 16 个字节参数的__stdcall函数的C++符号名称。

要解决此问题,请从WinMain功能周围移除extern "C"联动规范块。