是否可以从常规main调用WinMain ?
Is it possible to call WinMain from regular main?
特别是,有没有一种方法可以创建一个windows应用程序,而不直接指定它与'新建项目'向导?显然,仅仅包括"windows.h"并不会自动创建一个main函数,所以如果我想"从头开始"创建一个windows应用程序,我该怎么做呢?
程序启动时,调用start
或_start
函数。该函数的定义包含在通常自动链接的库中。在一个标准的C程序中,它会做一些启动的事情,然后调用你的main
函数。
这是在标准 C程序中发生的事情,但是您可以使用WinMain
代替,这不是标准的。如果main
不存在,但WinMain
存在,它将使用适当的参数调用WinMain
。
因此,不需要有main
函数;WinMain
比main
更适合这个目的。
icktofay的回答基本上是正确的,除了一个部分:
这是在标准C程序中发生的事情,但您可以使用
WinMain
代替,这不是标准的。如果main
不存在,但WinMain
存在,它将使用适当的参数调用WinMain
。
决定应用程序的次要入口点(start
或_start
调用的函数是什么)的因素是哪个子系统被指定给链接器。
如果您正在手动构建,您可以将/SUBSYSTEM
开关添加到链接器命令行中,以指定您正在构建的是Windows应用程序(期望WinMain
或wWinMain
入口点),而不是控制台应用程序(期望main
或wmain
入口点)。如果您是从Visual Studio构建的,您可以在c++项目属性的链接器设置中选择子系统。
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- 为什么 std::unique 不调用 std::sort?
- 调用专用模板时出错"no matching function for call to [...]"
- 选择要调用的构造函数
- C++为什么尽管我调用了void函数,它却不起作用
- 构造函数正在调用一个使用当前类类型的函数
- 变量没有改变?通过向量的函数调用
- Windows 是否可以调用静态库中的 WinMain 函数C++
- LNK2019:在Winmain中调用功能
- 从Java调用WinMain:可能吗?任何其他方式
- 从Windows窗体外部(从int WINAPI WinMain)调用Windows窗体方法
- 是否可以从常规main调用WinMain ?
- 从其他函数调用WinMain