我的印象是这段代码
#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,如果这有帮助的话。
答案 0 :(得分:5)
调用MinGw时,需要在命令行中放置-mwindows
。将this作为对MinGW Windows编程的温和介绍进行检查。
另外:你不能在可执行文件中有两个入口点,所以你可能无法做你想做的事。
答案 1 :(得分:4)
编译器将根据您是将编译输出定位到Windows子系统还是控制台子系统来选择一个入口点或另一个入口点。前者为WinMain
,后者为main
。
答案 2 :(得分:0)
刚刚发现这个工作,有点觉得愚蠢。
#define main USER_Main
然后,这会成为程序入口点的主要特征,同时仍然隐藏了用户搞砸了任何事实的事实。