特别是,有没有一种方法可以创建一个 Windows 应用程序,而无需使用“新项目”向导直接指定它?显然,简单地包含“windows.h”并不会自动创建一个主函数,所以如果我想“从头开始”创建一个 Windows 应用程序,我将如何去做呢?
问问题
2412 次
2 回答
5
当程序启动时,会调用start
or_start
函数。这个函数的定义包含在一个通常自动链接的库中。在标准的 C 程序中,它会做一些启动的事情,然后调用你的main
函数。
这就是标准C 程序中发生的情况,但您可以使用WinMain
它来代替,这不是标准的。如果main
不存在但WinMain
存在,它将WinMain
使用适当的参数调用。
因此,没有必要具有main
功能;WinMain
服务于这个目的,而不是main
.
于 2013-05-29T03:59:05.860 回答
4
icktoofay 的回答大部分是正确的,除了一部分:
这就是标准 C 程序中发生的情况,但您可以使用
WinMain
它来代替,这不是标准的。如果main
不存在但WinMain
存在,它将WinMain
使用适当的参数调用。
应用程序的辅助入口点(由start
or调用的函数_start
)是哪个子系统指定给链接器的决定因素。
如果您正在手动构建,您可以将/SUBSYSTEM
开关添加到链接器命令行以指定您正在构建 Windows 应用程序(需要一个WinMain
或wWinMain
入口点)而不是控制台应用程序(需要一个main
或wmain
入口点) )。如果从 Visual Studio 构建,则可以在 C++ 项目属性的链接器设置中选择子系统。
于 2013-05-29T05:05:24.580 回答