0

我的印象是这段代码

#include <windows.h>

#include <stdio.h>

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
    printf("WinMain\n");

    return 0;
}

int main()
{
    printf("main\n");

    return 0;
}

将输出 WinMain,但当然没有任何东西可以按照您的预期工作。

无论如何,有人可以告诉我如何让这个程序首先运行 WinMain(我确实有理由同时使用两者)。如果有任何帮助,我正在使用 mingw 运行 Windows 7。

4

3 回答 3

5

-mwindows调用 MinGw 时需要放在命令行上。看看这个作为使用 MinGW 进行 Windows 编程的温和介绍。

另外:你不能在一个可执行文件中有两个入口点,所以你可能不能做你想做的事。

于 2010-04-12T05:26:46.383 回答
4

编译器将根据您是将编译后的输出定位到 Windows 子系统还是控制台子系统来选择一个入口点或另一个。WinMain对于前者,main对于后者。

于 2010-04-12T05:41:47.743 回答
1

刚发现这项工作,有点愚蠢。

#define main USER_Main

然后,这使 main 成为程序入口点,同时仍然隐藏了任何东西都被用户弄乱的事实。

于 2010-04-21T07:21:00.723 回答