- ベストアンサー
エラーの意味が??
Error: 外部シンボル 'WinMain' が未解決(C:\BORLAND\BCC55\LIB\C0W32.OBJ が参照)とエラーが出るんですが、そもそも外部シンボル 'WinMain' とは何ですか? 文字数が超えるのでソースは載せれませんが・・・、 }
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
-tW オプションが指定されているようですが、必要ありません。 bcc32 prog.c でいいです。
その他の回答 (3)
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
回答No.3
ソースプログラムの内容は分かりました。やはりWinMainがないのですね。 そうすると、コンパイル時にWin32 GUIアプリケーション作成のためのオプションが指定されているはずなので、それを外せばよいはずなのですが、コンパイル時はどのようなオプションを指定していますか。
- buihyaku
- ベストアンサー率29% (97/326)
回答No.2
ボーランドのことはまったく知らないのですが、 クラスライブラリを使っているとWinMain関数が隠蔽されて組み込まれていることがあります。それを使わないでプログラム作成する場合にはWinMainを自前で実装する必要が出てきます。 もしかするとボーランドでもクラスライブラリが準備されていて、普段をそれを使ってプログラムされているのではないでしょうか? もしそうなら、クラスライブラリを使う形でリンクしなおせば直るとおもわれます。
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
回答No.1
Win32用プログラムを作成していて、関数WinMainを書いていないのではないですか。 Win32用プログラムを作成する場合、通常は関数WinMainから実行を開始するので、関数WinMainがない場合はリンク時にエラーとなります。
補足
include <stdio.h> #include <time.h> #include <stdlib.h> //ジャンケンゲーム main () { int player, computer; int p_win = 0; //プレイヤーの勝ち数をカウントする変数 int p_lose = 0; //プレイヤーの負け数をカウントする変数 int p_draw = 0; //引き分けの回数をカウントする変数 int limit = 5; int i; printf("【%d回勝負ジャンケンゲーム】\n",limit); srand(time(NULL)); for(i = 0; i < limit; i++) { printf("ジャンケン・・・(グー:1 チョキ:2 パー:3を入力)>"); player = 0; scanf("%d", &player); while(getchar() != '\n') { } computer = rand()%3 + 1; printf("コンピュターは"); switch (computer) { case 1 : printf("グー"); break; case 2 : printf("チョキ"); break; case 3 :printf("パー"); break; default: break; } printf("! "); if(computer == player) { printf("あいこ\n"); p_draw++; } else if(computer == 2 && player == 1){ printf("プレイヤーの勝ち\n"); p_win++; } else if(computer == 3 && player == 2){ printf("プレイヤーの勝ち\n"); p_win++; } else if(computer == 1 && player == 3){ printf("プレイヤーの勝ち\n"); p_win++; } else if(computer == 1 && player == 2){ printf("コンピューターの勝ち\n"); p_lose++; } else if(computer == 2 && player == 3){ printf("コンピューターの勝ち\n"); p_lose++; } else if(computer == 3 && player == 1){ printf("コンピューターの勝ち\n"); p_lose++; } else { printf("プレイヤーは不正な手を出した。\nコンピューターの勝ち"); p_lose++; } } printf("\n%d勝%d敗%d引き分け",p_win,p_lose,p_draw); if(p_win == p_lose) { printf("引き分け!\n");} else if(p_win > p_lose) { printf("プレイヤーの勝利!\n");} else { printf("コンピューターの勝利!\n");} return 0; } ソースです