Reputation: 229
I was under the impression that this code
#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;
}
would output WinMain, but of course nothing ever works how you expects.
Anyways, could somebody please tell me how to get this program to run WinMain first (I do have a reason for using both). I'm running windows 7 with mingw if that helps anything.
Upvotes: 0
Views: 2588
Reputation: 229
Just found this work around and kind of feel dumb.
#define main USER_Main
This then takes main out of line for being the programs entry point while still hiding the fact that anything was messed with from the user.
Upvotes: 1
Reputation: 27363
The compiler will choose one entry point or the other based on whether you're targeting the compiled output to the Windows subsystem or the Console subsystem. WinMain
for the former, main
for the latter.
Upvotes: 4
Reputation: 27693
You need to put -mwindows
on the command line when you call MinGw. Check this out as a gentle introduction to Windows programming with MinGW.
Also: you cannot have two entry points in an executable, so you probably can not do what you want to do.
Upvotes: 5