0

この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:関数___tmainCRTStartupMSVCRTD.libで参照される未解決の外部シンボル_WinMain@16エラー5致命的なエラーLNK1120:1未解決の外部

4

2 に答える 2

1

リンカの設定を確認します([Pprojectのプロパティ]->[リンカ]->[システム])。

SubSystemプロパティはCONSOLEに設定する必要があります

于 2009-09-24T11:10:52.833 に答える
0

Windows(win32)アプリケーションをコンパイルしていますが、WinMain()の代わりにmain()関数があります。

プロジェクトのタイプをある種のコンソールアプリケーションに変更するか(それがどのように呼ばれるかを正確に覚えていない)、Windowsアプリケーションの作成について読む必要があります。

問題は、win32アプリケーションがメイン関数にWinMain()を使用し、そこにメッセージループを実装することです。したがって、WinMain()関数を定義せずにwin32アプリケーションをコンパイルしようとすると、コンパイラはそれについて文句を言います。コンソールアプリケーションを作成し、main()関数を提供しない場合も、同様のことが起こります。

于 2009-09-24T11:11:17.373 に答える