• ベストアンサー

エラーの意味が??

Error: 外部シンボル 'WinMain' が未解決(C:\BORLAND\BCC55\LIB\C0W32.OBJ が参照)とエラーが出るんですが、そもそも外部シンボル 'WinMain' とは何ですか? 文字数が超えるのでソースは載せれませんが・・・、 }

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.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がない場合はリンク時にエラーとなります。

kawasemi-1204
質問者

補足

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; } ソースです

関連するQ&A

  • C言語 エラー bcc developer プログラミング

    僕はbcc developerを使ってCプログラミングをしてるんですがしてるんですが今日いきなり【Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照】というようなエラーが出てきました。 困ってます。だれか教えてください↓

  • リンク時エラー

    DirectShowのSampleGrabberを使ったプログラムをborland C++ コンパイラでコンパイルしようとしたときにエラーが出てしまいます。 bcc32 -I"C:\Borland\Bcc55\Include" -L"C:\Borland\Bcc55\Lib" -I"c:\Program Files\Microsoft Platform SDK\Include" -L"c:\Program Files\Microsoft Platform SDK\Lib" -L"C:\Program Files\Microsoft DirectX 9.0 SDK (October 2005)\Lib" -------------------------------------------------- Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '_CLSID_SampleGrabber' が未解決(C:\CPP\DIRECTSHOW\CTHUMBNAI L.OBJ が参照) Error: 外部シンボル '_IID_ISampleGrabber' が未解決(C:\CPP\DIRECTSHOW\CTHUMBNAIL .OBJ が参照) Error: 外部シンボル '_MEDIATYPE_Video' が未解決(C:\CPP\DIRECTSHOW\CTHUMBNAIL.OB J が参照) Error: 外部シンボル '_MEDIASUBTYPE_RGB24' が未解決(C:\CPP\DIRECTSHOW\CTHUMBNAIL .OBJ が参照) Error: 外部シンボル '_FORMAT_VideoInfo' が未解決(C:\CPP\DIRECTSHOW\CTHUMBNAIL.O BJ が参照) DierctShowは最近Platform SDKに統合されたらしいのでPlatform SDKからインクルードしています。 ご存知の方がいらっしゃいましたらご教授お願い致します。

  • libjpegに関する質問

    bcc5.5.1でlibjpegを使いたいのですがうまくいきません 説明サイトどおりにmakeして、生成された全てのヘッダファイルをc:¥borland\bcc55¥Includeに移動してlibjpeg.libはc:¥borland¥bcc55¥Libに移動したのですが、 Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland jpeg_read_test.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '_jpeg_std_error' が未解決(C:\CPP\JPEG_READ_TEST.OBJ が参照) Error: 外部シンボル '_jpeg_CreateDecompress' が未解決(C:\CPP\JPEG_READ_TEST.OBJ が参照) Error: 外部シンボル '_jpeg_stdio_src' が未解決(C:\CPP\JPEG_READ_TEST.OBJ が参照) Error: 外部シンボル '_jpeg_read_header' が未解決(C:\CPP\JPEG_READ_TEST.OBJ が参照) と出てしまいます。 libjpeg.libが認識されていないのだと思いますが解決方法が分かりません 知っている方がいたら教えてください

  • こんなエラー初めてです。

    Error: 外部シンボル '_Comet_Position' が未解決(C:\SOURCE\COMET.OBJ が参照) Error: 外部シンボル '_Calendar' が未解決(C:\SOURCE\COMET.OBJ が参照) Error: 外部シンボル '_Precession' が未解決(C:\SOURCE\COMET.OBJ が参照) こんなエラー初めてです。

  • Windowsアプリケーションをどうしても作りたいのですが

    /* OS==XP コンパイラー==Borland C++5.5 */ #include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , LPSTR lpCmdLine , int nCmdShow ) { return 0; } で Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照) となるのでexeファイルができません。 解決法を是非教えてください。 C言語歴2日+1H

  • Windowsアプリケーションが作りたいのですが

    /* OS==XPpro コンパイラー==Borland C++5.5  */ #include <windows.h> で Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照) となってexeファイルができません。 解決法を教えてください。 C言語歴2日

  • PostgresSQLの環境設定についてご教示願います

    こんばんわ。 現在、C言語でPostgresSQL8.3を使用しようとしています。 CコンパイラはBorland C++5.5を利用しています。  ※OSはWindowsXP-Pro/SP2です Cソースは、単純にデータベースに接続、SELECT処理、切断を行なう だけのものですが、コンパイル時に以下のリンクエラーが表示されます。 Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland test01.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error:外部シンボル'_PQsetdbLogin'が未解決(D:\TEST01.OBJ が参照) Error:外部シンボル'_PQstatus'が未解決(D:\C\TEST01.OBJ が参照) Error:外部シンボル'_PQexec'が未解決(D:\TEST01.OBJ が参照) Error:外部シンボル'_PQresultStatus'が未解決(D:\TEST01.OBJ が参 照) Error:外部シンボル'_PQerrorMessage'が未解決(C:\TEST01.OBJ が参 照) Error:外部シンボル'_PQgetvalue'が未解決(C:\TEST01.OBJ が参照) Error:外部シンボル'_PQclear'が未解決(C:\TEST01.OBJ が参照) PostgresSQLのインストール後に行なった設定としては、 コンパイラ側のbcc32.cfg内に、 -I"PostgresSQLインストールDir\include" -L"PostgresSQLインストールDir\lib" を追加しただけです。 もしこれ以外に必要な設定がありましたらご教示頂けますよう お願い致します。

  • Visual C++ 2005 Express EditionでLINK2019エラー

    Visual C++ 2003.netからVisual C++ 2005 Express Editionに移行した際に、以前書いたプログラムがリンクエラーで動かなくなってしまいました。 追加するLibディレクトリが足りないのかと思ったのですが、何が足りないのか見つけることができませんでした。 解決法を教えていただけないでしょうか。 OSはWindows XPです。 よろしくお願いします。 エラーメッセージの内容↓ ------------------------------- error LNK2019: 未解決の外部シンボル __imp__GetWindowPlacement@8 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__DispatchMessageA@4 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__TranslateMessage@4 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__PeekMessageA@20 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__ValidateRect@8 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__ShowWindow@8 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__SetWindowPos@28 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__GetWindowRect@8 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__GetClientRect@8 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__CreateWindowExA@48 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__GetSystemMetrics@4 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__RegisterClassExA@4 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__LoadCursorA@8 が関数 _WinMain@16 で参照されました。 error LNK2019: 未解決の外部シンボル __imp__DefWindowProcA@16 が関数 "long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 error LNK2019: 未解決の外部シンボル __imp__PostQuitMessage@4 が関数 "long __stdcall WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。 現在追加されているLibディレクトリ↓ ------------------------------------------- $(VCInstallDir)lib $(VCInstallDir)PlatformSDK\lib $(FrameworkSDKDir)lib $(VSInstallDir) $(VSInstallDir)lib C:\Program Files\Microsoft Platform SDK\Lib C:\Program Files\Microsoft DirectX SDK (April 2007)\Lib\x86

  • ilink32について。'__setargv__'と'__turboFloat__'が未解決

    WindowsXP+bcc32+ilink32でGLUTを使ったプログラムを書いています。 bccの設定はsetbcc.exe(http://www.cmagazine.jp/setbcc.html)を使いました。 opengl32.lib, glu32.lib, glut32.libはimplib.exe(http://blog.jyoken.net/?eid=478291)を使って作成しました。 以上の設定でbcc32付属のMakeを使ってmakeしたところ、 コンパイル後のリンクで以下のようなエラーが出てしまい困っています。 どなたか解決法を教えていただけないでしょうか? よろしくお願いします。 --------------------- エラーの内容 --------------------- Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '__setargv__' が未解決(root が参照) Error: 外部シンボル '__turboFloat' が未解決(root が参照) --------------------- --------------------- 使用しているMakefile --------------------- CC = bcc32 LINKER = ilink32 SRCS = main.c callback.c Task.c Logger.c OBJS = $(SRCS:.c=.obj) TARGET = main.exe CFLAGS = -wall -O2 LFLAGS = LIBS = opengl32.lib glu32.lib glut32.lib INCLUDE = -I"C:\borland\bcc55\Include" LIB = -L"C:\borland\bcc55\Lib" all: $(TARGET) .SUFFIXES : .obj .c .c.obj: $(CC) $(CFLAGS) -c $(SRCS) $(TARGET): $(OBJS) $(LINKER) $(LFLAGS) $(LIB) $(OBJS),$(TARGET),,$(LIBS) ---------------------

  • Visual Windows for BC++の設定方法を教えてください。

    BCC Developper で リンク:CV.lib, cxcore.lib highgui.lib を設定してビルドできるプログラムがあります。 これをVisual Winows for BC++ でビルドしようとすると、コンパイルはできるのですが、リンクでエラーになります。 Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '_cvLoadImage' が未解決(D:\PROJ2\DEBUG\OPENCV1.OBJ が参照) Error: 外部シンボル '_cvNamedWindow' が未解決(D:\PROJ2\DEBUG\OPENCV1.OBJ が参照) Error: 外部シンボル '_cvCloneImage' が未解決(D:\BCCPROJ\PROJ2\DEBUG\OPENCV1.OBJ が参照) Error: 外部シンボル '_cvGetSize' が未解決(D:\BCCPROJ\PROJ2\DEBUG\OPENCV1.OBJ が参照) 以下省略 libファイルのあるフォルダは指定してありますので、直接libファイルを指定しなければいけないと思うのですが、直接指定する方法がわかりません。 なおコマンドラインで、 bcc32 -WC -6 -Od -w- -AT -pc -H- -k -b -v -y -eDebug\proj2.exe Debug\opencv1.obj D:\OpenCV\lib\cv.lib D:\OpenCV\lib\cxcore.lib D:\OpenCV\lib\highgui.lib では正常にビルドできます。

専門家に質問してみよう