WinMain não chamado Antes do Main (emissão de ponto de entrada do programa C/C ++)
Pergunta
Eu estava com a impressão de que este código
#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;
}
produziria Winmain, mas é claro que nada funciona como você espera.
De qualquer forma, alguém poderia me dizer como fazer com que esse programa execute o Winmain primeiro (eu tenho um motivo para usar os dois). Estou executando o Windows 7 com o Mingw, se isso ajudar qualquer coisa.
Solução 3
Acabei de encontrar esse trabalho e meio que se sentir burro.
#define main USER_Main
Isso então tira o principal da linha por ser o ponto de entrada dos programas, enquanto ainda esconde o fato de que tudo foi bagunçado do usuário.
Outras dicas
Você precisa colocar -mwindows
na linha de comando quando você liga para Mingw. Verificar isto como uma introdução suave à programação do Windows com o Mingw.
Além disso: você não pode ter dois pontos de entrada em um executável; portanto, provavelmente não pode fazer o que deseja fazer.
O compilador escolherá um ponto de entrada ou outro com base em se você está direcionando a saída compilada para o subsistema do Windows ou o subsistema do console. WinMain
Para o primeiro, main
para o último.