Externo não resolvido em C-programa no Win 32 no Visual Studio 2008
-
16-09-2019 - |
Pergunta
Por que não esta compilação programa C e o que as mensagens err dizer:
#include <stdio.h>
int main() {
char op = ' ';
char cont = ' ';
int tal1 = 0;
int tal2 = 0;
int result;
int ok = 1;
printf("Welcome\n");
do {
printf("Which one (+ - * /)? ");
scanf("%c", &op); fflush(stdin);
printf("Number?: ");
scanf("%d", &tal1); fflush(stdin);
printf("Number: ");
scanf("%d", &tal2); fflush(stdin);
ok=1;
switch(op){
case '+':
result=tal1+tal2;
break;
case '-':
result=tal1-tal2;
break;
case '*':
result=tal1*tal2;
break;
case '/':
result=tal1/tal2;
break;
default:
printf("Wrong\n");
ok=0;
break;
}
if(ok)
printf("Answer: %d\n", result);
printf("Continue? (j/n)"); fflush(stdin);
}while (cont == 'j');
printf("Thanks!\n");
return 0;
}
Err bagunça: Erro 4 LNK2019 de erro: não resolvido símbolo _WinMain externa @ 16 referenciado na função ___tmainCRTStartup MSVCRTD.lib Erro 5 Erro fatal LNK1120: 1 não resolvidos externos
Solução
Verifique as configurações do vinculador (Projeto Propriedades-> Linker-> System).
A propriedade SubSystem deve ser definido como CONSOLE
Outras dicas
Você está compilando um aplicativo do Windows (Win32), mas tem main () função em vez de WinMain ().
Você deve ou alterar o tipo de seu projeto para algum tipo de aplicativo de console (não me lembro exatamente como isso é chamado) ou ler sobre a escrita de aplicações do Windows.
O problema é que Win32 aplicativos usam WinMain () para a sua função principal e implementar um loop de mensagem lá. Então, quando você tenta compilar win32 aplicativo sem definir um WinMain () funcionar o compilador reclama sobre isso. Semelhante coisa que aconteceria se você iria escrever um aplicativo de console e não iria fornecer uma função main ().