WinMain не вызывается перед Main (проблема входа в систему входа C / C ++)

StackOverflow https://stackoverflow.com/questions/2620031

  •  26-09-2019
  •  | 
  •  

Вопрос

Я был под впечатлением, что этот код

#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 для последнего.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top