• ベストアンサー

VC++でエラー

--------------------構成: 01 - Win32 Debug-------------------- コンパイル中... text.cpp リンク中... LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です Debug/01.exe : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー 01.exe - エラー 2、警告 0 な、なんだ?? 何が起こったんだ?? 教えてください。

  • Ginga
  • お礼率69% (64/92)

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

  • ベストアンサー
  • YoshiMu
  • ベストアンサー率41% (96/229)
回答No.4

Win32 Applicationとは、WinMainから開始されるイベント駆動型のプログラム。 Win32 Console Applicationとは、mainから開始される昔ながらのプログラム。 と、簡単にくくってしまったところで納得行かないでしょうし、実際にはWinMainから始まってもイベント駆動型ではないプログラムも作成できますから。 コンパイラのオプションをよく調べてみますと、/Subsystem:windowsってのが見つかると思うのですよ。これがあると、WinMainから始まるはずだ、とコンパイラは考えるわけですね。 逆に、/Subsystem:consoleと書かれていた場合、mainから始まるはずだ、と考えるわけです。 では、/Subsystemの指定がない場合には、mainがあれば、consoleのつもり、WinMainがあれば、windowsのつもりでコンパイルされるとのこと。 Win32 Applicationで新規作成すると、/Subsystem:windowsになっています。

参考URL:
http://www.microsoft.com/JAPAN/developer/library/vccore/_core_.2f.subsystem.htm
Ginga
質問者

お礼

詳しいんですね。 とても参考になりました。 ありがとうございました。

その他の回答 (3)

noname#9414
noname#9414
回答No.3

補足読みました。 フリーソフト作成者ねぇ・・・私もそうですが。 一応慣れないうちはウィザードを使ってもいいかと 思います。 ただ、補足を見た限りでは、以下の方法でコンパイル するだけで充分だと思います。 1.Visual C++を起動する。 2.新規作成ボタンを押す(メニューでなくツールバー) 3.出てきた画面に下のソースを貼り付ける。 4.メニューの「ビルド」「ビルド」を選択し、ビルド。 5.なにやら聞いてくるけど、すべて「はい」を押す。 以上。 ついでにいうのであれば、ANSI Cの勉強をするので あれば、PC-UNIXのCCか、WindowsであればLSI-Cを お薦めしますよ。 #コンソールでコンパイルすることになりますが・・・ ではでは☆

Ginga
質問者

お礼

ありがとうございました。 うまくいきました。 やる気出てきたよ。頑張ります。

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.2

補足のソースコードそのままでコンパイル出来て実行出来ました。  エラーの内容:  そのままですね。WinMainシンボルがないよって言っているのです。  そんなもん使っていないって言われるかもしれませんが、プロジェクトの作成方法が間違っている可能性が高いので、プロジェクトの作り方から補足下さい。  ちなみに、ウィザードは仕組みを理解して使えば便利です。よ。  私は、”Win32 Console Application"でプロジェクトを作成して、組込みプリヘッダーの使用しないにして、コンパイル・リンクして、EXEを作成して実行しました。

Ginga
質問者

お礼

Win32 Applicationで作りました。 Win32 Console Applicationと何が違うのですか? 初心者ですからもう少し詳しくお願いします。 ありがとうございました

noname#9414
noname#9414
回答No.1

基本的にVisual C++でプログラムを作成するときには アプリケーションウィザードで作成する(Windowsの プログラム)かmain()関数を含むプログラムを作成して それをコンパイルするかです。 ソースファイルの中身を見ないと詳しいことは 分かりませんが、Windowsプログラムを作成する のであれば、アプリケーションウィザードを使用 することをお薦めしますよ。 #うまくリンクさせれば、ウィザードはいらない #のだと思いますが、ウィザードを使うのが一番 #簡単だと思いますよ。 ではでは☆

Ginga
質問者

お礼

ありがとうございます。 ソースはこちら。 /* 計算を行う */ #include <iostream.h> int main(void) { int x; int y; cout << "x ?"; cin >> x; cout << "y ?"; cin >> y; cout << "x+yは"<<x+y<<"です\n"; return (0); } ちなみに解説書に載ってました。 フリーソフトを作っている方に教えていただいたのですが、 ウィザードは使わないほうがいいとの事です。 (おまえ初心者なんだから使えよって感じですが、 僕自身こだわるタイプですんで。) このエラーの意味を聞いたのですが、説明不足でした。 どういう意味ですか?

関連するQ&A

  • C++で、外部シンボル・外部参照が未解決

    どんな簡単な間違っていないようなプログラムをビルドしても、同じエラーメッセージが現れてきます。 これは、もしかしてインストールの仕方がまずかったのでしょうか? LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です Debug/hello.exe : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー hello.exe - エラー 2、警告 0

  • Visual C++6.0を使っていての質問

    タイトルのとおりの質問なのですが、 LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です Debug/gasoti2bai.exe : fatal error LNK1120: 外部参照 1 が未解決です。 というエラーがコンパイル時に出るのですがどうしたらよろしいのでしょうか。 新規作成->win32 アプリケーション で空のオブジェクトを選択しました。できればこの設定を変えずに解決したいのですが・・ なにとぞよろしくお願いいたします。

  • VC++プログラムについて、お願いします。

    自作プログラムをできた!と思い、ビルドしたのですが(「MFCを使用しない」で作っています)。 「 リンク中... LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です Debug/Sample.exe : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー Sample.exe - エラー 2、警告 0 」 どうしてもリンクがうまくいかないようです。 プログラム的には問題が無いと思うのですが、この場合は何が悪いのか、教えて下さい。 帰れないものですいません、お願い致します。

  • ビルドする時のエラー。(初心者です)

    リンク中... LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です Debug/MousMov.exe : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー というエラーがでます。 何がいけなくて対処方法はどうすればいいのでしょう。 初めてビルドするときは、エラーは何も出ないのですがもう一回するとこのエラーがでます。どうすればいいんですか?よろしくお願いします。

  • Win32APIについて

    #include <windows.h> int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR pCmdLine, int showCmd) { return 0; } のようなプログラムをビルドすると LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です Debug/Cpp1.exe : fatal error LNK1120: 外部参照 1 が未解決です。 が出ます。 ちなみにコンパイル環境はMicrosoft Visual C++ 5.0です。

  • VC6.0でエラー

    環境:winNT4.0,vc6.0 コンソールアプリケーション作成でデバックモードではエラー、警告は、出ないのですが リリースモードで下記のようなエラーがでます。 エラーを消すにはどうしたらよいのでしょうか? 宜しくお願いします。 --------------------構成: muktc - Win32 Release-------------------- リンク中... muktc.obj : error LNK2001: 外部シンボル "_WSACleanup@0" は未解決です muktc.obj : error LNK2001: 外部シンボル "_WSAStartup@8" は未解決です muktc.obj : error LNK2001: 外部シンボル "_WSAGetLastError@0" は未解決です muktc.obj : error LNK2001: 外部シンボル "_gethostname@8" は未解決です muktc.obj : error LNK2001: 外部シンボル "_NetRemoteTOD@8" は未解決です Release/muktc.exe : fatal error LNK1120: 外部参照 5 が未解決です。 link.exe の実行エラー muktc.exe - エラー 6、警告 0

  • DLL呼び出しAPのリンクエラーについて

    DLL作成初心者です。 当方で簡単なDLLを作成しました。 試しに、下記の呼び出しAP(EXE)を作成しようと したのですが、リンクエラーになります。 どうしてでしょうか? 呼び出しAP #include <windows.h> int main(){ static HINSTANCE hDLL; hDLL = LoadLibrary(TEXT("DLL_TEST.DLL")); if (hDLL) FreeLibrary(hDLL); return 0; } リンクエラーは下記 IBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です Debug/TEST.exe : fatal error LNK1120: 外部参照 1 が未解決です また上記"_WinMain@16"のライブラリーをリンクさせると SCRNSAVE.LIB(scrnsave.obj) : error LNK2005: _main はすでに test.obj で定義されています SCRNSAVE.LIB(scrnsave.obj) : error LNK2001: 外部シンボル "_ScreenSaverProc@16" は未解決です SCRNSAVE.LIB(scrnsave.obj) : error LNK2001: 外部シンボル "_ScreenSaverConfigureDialog@16" は未解決です SCRNSAVE.LIB(scrnsave.obj) : error LNK2001: 外部シンボル "_RegisterDialogClasses@4" は未解決です Debug/TEST.exe : fatal error 等のエラーになります。 解決策を教えてください。

  • MS VC++コンパイルエラーなし...ビルドエラー

    Microsoft Visual C++ で、新規作成 - 「プロジェクト」 - Win32 Application で作成し、「ファイル」-  C++ソースファイルで、main.cpp と言う名前で、以下のソースを作成しました。 #include <stdio.h> #include <stdlib.h> void main(int argc) { FILE *Fout; Fout = fopen("Date.ini" , "W "); fprintf(Fout , "%d" ,argc); fclose( Fout); } 別に作成したdllが、fscanfするためのテキストファイルを日次ハバッチで、作成したいと思っています。 尚、ここでfprintfするデータは、パラメータとして、読み込みたいと思っています。 (Visual BASICの command関数のように) 上記のソース、コンパイルは、通るのですが、ビルドすると以下のエラーが出ます。 「LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16"は未解決です Debug/Date_ini.exe : fatalerror LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー 解決法をご教示いただきたく思います。 宜しくお願い致します。

  • 「外部シンボル "_DirectDrawCreate@12" は未解決」って???

    外国のサイトで拾ってきたVisual C++のソースコードをコンパイルしたら 次のようなエラーが出ました。 --------------------------------- (1) test.obj : error LNK2001: 外部シンボル "_DirectDrawCreate@12" は未解決です (2) nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__endthreadex" は未解決です (3) nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__beginthreadex" は未解決です (4) Debug/prog.exe : fatal error LNK1120: 外部参照 3 が未解決です。 (5) link.exe の実行エラー --------------------------------- 特に、(1)~(3) の意味がよく分かりません。 Readmeを見ると、「コンパイルすればいい」としか書いてないのですが、、、 もし原因がわかったらお願いします。

  • C++でのエラー LNK2001

    C++でプログラミング中ビルドしたところ以下のようなエラーが出ました。解決方法がわかりません。どのようにしたら解決できるのでしょうか? ---------------------------------------------------------------- コンパイル中... sample01.cpp リンク中... sample01.obj : error LNK2001: 外部シンボル "__imp__dispose_library" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__get_copyright_information" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__get_version_information" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__initialize_library" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__close_reader_writer" は未解決です sample01.obj : error LNK2001: 外部シンボル "__imp__get_last_error_types" は未解決です Debug/Sample01.exe : fatal error LNK1120: 外部参照 6 が未解決です。 link.exe の実行エラー

専門家に質問してみよう