WinMain не вызывается перед Main (проблема входа в систему входа C / C ++)
Вопрос
Я был под впечатлением, что этот код
#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 (у меня есть причина использования обоих). Я запускаю Windows 7 с Mingw, если это поможет что-нибудь.
Решение 3
Просто нашел эту работу вокруг и чувствовать себя глупым.
#define main USER_Main
Затем это принимает главную информацию о том, чтобы быть точкой входа в программы, все еще скрывая тот факт, что что-то было запутано от пользователя.
Другие советы
Вам нужно поставить -mwindows
в командной строке, когда вы называете Mingw. Проверить это В качестве нежного введения в программирование Windows с Mingw.
Также: у вас не может быть двух точек входа в исполняемое, поэтому вы, вероятно, не можете делать то, что вы хотите сделать.
Компилятор выберет одну точку записи или другое основанное на основе того, ориентирована ли вы скомпилированным выходом в подсистему Windows или подсистему консоли. WinMain
Для первого, main
для последнего.