質問

この C プログラムがコンパイルできない理由と、エラー メッセージの意味は次のとおりです。

#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;
}

エラー混乱:エラー 4 エラー LNK2019:未解決の外部シンボル_winmain@16関数で参照___tmaincrtstartup msvcrtd.libエラー5致命的なエラーlnk1120:1 つの未解決の外観

役に立ちましたか?

解決

リンカー設定を確認してください ([プロジェクトのプロパティ] -> [リンカー] -> [システム])。

SubSystem プロパティは次のように設定する必要があります。 コンソール

他のヒント

は、Windows(Win32の)アプリケーションをコンパイルするが、main()関数の代わりのWinMain()を持っています。

あなたは(それが呼ばれています正確にどのように覚えていない)、またはWindowsアプリケーションを書くことについて読んでコンソールアプリケーションのいくつかの並べ替えにプロジェクトの種類を変更する必要がありますどちらか。

問題は、Win32アプリケーションがそれらの主な機能のためのWinMain()を使用し、そこでメッセージループを実装することです。あなたはWinMain関数を()を定義することなく、Win32アプリケーションをコンパイルしようとするので、コンパイラはちょうどそれについて不平を言う機能。コンソールアプリケーションを書くでしょうし、main()関数を提供しない場合は、同様のことが起こるでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top