在main之前没有调用WinMain(C / C ++程序入口点问题)

时间:2010-04-12 05:23:12

标签: c++ c winapi winmain

我的印象是这段代码

#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,如果这有帮助的话。

3 个答案:

答案 0 :(得分:5)

调用MinGw时,需要在命令行中放置-mwindows。将this作为对MinGW Windows编程的温和介绍进行检查。

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

答案 1 :(得分:4)

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

答案 2 :(得分:0)

刚刚发现这个工作,有点觉得愚蠢。

#define main USER_Main

然后,这会成为程序入口点的主要特征,同时仍然隐藏了用户搞砸了任何事实的事实。