Visual Studio 继续使用 wWinMain() 作为入口点而不是我想要的 main() 函数
Visual Studio keeps using wWinMain() as the entry point instead of the main() function I want it to
我的 Visual Studio 项目是作为 windows 应用程序启动的,但是我开始意识到,如果我想使用 GLFW,那么我应该打开一个 GLFW window 而不是标准的 wWinMain window。我有一个 wWinMain 函数,但是因为每次我 运行 程序而不是我的 int main()
函数和里面的 GLFW window 测试代码时它保持 运行ning,我改变了名字wWinMain 函数的一部分,希望在构建程序时它会遵从我编写的 main() 函数。但是它没有用,而是我不断收到相同的错误:
error LNK2019: unresolved external symbol WinMain referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
如何让它停止寻找 wWinMain 函数,而只寻找 运行 main() 函数?
到目前为止唯一有效的解决方案是将我的 main() 函数重命名为 wWinMain 并让它接受所有变量但不对它们做任何事情并且只是 运行 我的代码在里面正常,但是这个似乎不是最佳选择。
我也尝试了建议的答案 但它总是使用 GLFW window 打开命令 window 而默认情况下使用 wWinMain 函数会 运行没有一个,除非我专门使用 AllocConsole(),所以我怀疑建议的答案实际上并没有针对我的问题的正确解决方案。
我也试过 所示的解决方案,但它对我不起作用? idk 也许我执行错了
Windows 知道两种与您相关的程序:控制台程序和图形程序。
控制台程序自动获得一个控制台(例如,您可以在命令行中获取它们的输出)并且它们的入口点是 main
或 wmain
.
图形程序不会自动获得控制台,而这正是您想要的。他们也不会自动创建任何 windows;您必须手动执行此操作(即像您想要的那样使用 GLFW)。它们的入口点是always WinMain
或wWinMain
.
你必须选择一个,你不能mix-and-match。只需将您的 GLFW 代码放入 wWinMain
。 main
在图形 Windows 程序中没有意义,您应该将其删除。不使用传递给 wWinMain
的参数没有错 - 如果您不需要它们,那很好。 main
也接受您当前不使用的参数(但 main
有点特殊,因为您可以省略未使用的参数)。
选择main还是winMain是在项目的linker部分控制的
- 子系统=控制台意味着主要
- 子系统=windows表示winmain
我的 Visual Studio 项目是作为 windows 应用程序启动的,但是我开始意识到,如果我想使用 GLFW,那么我应该打开一个 GLFW window 而不是标准的 wWinMain window。我有一个 wWinMain 函数,但是因为每次我 运行 程序而不是我的 int main()
函数和里面的 GLFW window 测试代码时它保持 运行ning,我改变了名字wWinMain 函数的一部分,希望在构建程序时它会遵从我编写的 main() 函数。但是它没有用,而是我不断收到相同的错误:
error LNK2019: unresolved external symbol WinMain referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
如何让它停止寻找 wWinMain 函数,而只寻找 运行 main() 函数?
到目前为止唯一有效的解决方案是将我的 main() 函数重命名为 wWinMain 并让它接受所有变量但不对它们做任何事情并且只是 运行 我的代码在里面正常,但是这个似乎不是最佳选择。
我也尝试了建议的答案
我也试过
Windows 知道两种与您相关的程序:控制台程序和图形程序。
控制台程序自动获得一个控制台(例如,您可以在命令行中获取它们的输出)并且它们的入口点是 main
或 wmain
.
图形程序不会自动获得控制台,而这正是您想要的。他们也不会自动创建任何 windows;您必须手动执行此操作(即像您想要的那样使用 GLFW)。它们的入口点是always WinMain
或wWinMain
.
你必须选择一个,你不能mix-and-match。只需将您的 GLFW 代码放入 wWinMain
。 main
在图形 Windows 程序中没有意义,您应该将其删除。不使用传递给 wWinMain
的参数没有错 - 如果您不需要它们,那很好。 main
也接受您当前不使用的参数(但 main
有点特殊,因为您可以省略未使用的参数)。
选择main还是winMain是在项目的linker部分控制的
- 子系统=控制台意味着主要
- 子系统=windows表示winmain