• ベストアンサー

猫でもわかるWindowsプログラムについて・・

いま猫でもわかるWindowsプログラムという本でCの勉強をしているのですが。 一番最初の問題で詰まりました教えてください。 リンク中... 何もないプログラム.obj : error LNK2001: 外部シンボル ""int __cdecl InitINstance(struct HINSTANCE__ *,int)" (?InitINstance@@YAHPAUHINSTANCE__@@H@Z)" は未解決です 何もないプログラム.obj : error LNK2001: 外部シンボル ""long __stdcall wndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?wndProc@@YGJPAUHWND__@@IIJ@Z)" は未解決です LIBCD.lib(crt0.obj) : error LNK2001: 外部シンボル "_main" は未解決です Debug/何もないプログラム.exe : fatal error LNK1120: 外部参照 3 が未解決です。 link.exe の実行エラー 何もないプログラム.exe - エラー 4、警告 0 エラーの意味がわかりません。教えてください、何もないプログラムというのはプログラムの名前です、

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

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.3

こちらはWin32 Applicationでプロジェクトを作成するべきところをWin32 Console Applicationで作ってしまったために出るエラーです。 Win32 Applicationではメイン関数をWinMain()として作成する必要があります。 Win32 Applicationを指定しているのにメイン関数がmain()であった場合、「外部シンボル "_WinMain@16" は未解決」というエラーが報告されます。 Win32 Console Applicationではメイン関数をmain()として作成する必要があり、メイン関数がWinMain()だった場合「外部シンボル "_main" は未解決です」と言うエラーが出ます。 ただし、ソース上にタイプミスが無いことが前提です。 Win32 ApplicationのプロジェクトでWinMain()をタイプミスしてWINMain()にしてしまったらやっぱり、「外部シンボル "_WinMain@16" は未解決」とエラーが出るので注意してください。 LNK1120のエラー「外部参照○が未解決です」とういうのは「合計○個の未解決シンボルがあります」と言う意味なので、LNK2001(外部シンボル未解決エラー)が解消されれば消えます。 プロジェクト設定、タイプミスによるリンクエラーはよくある(慣れてきてもやってしまう)ことなので対処にも慣れてください。

kimaira
質問者

お礼

ありがとうございました。勉強になりました。

その他の回答 (2)

  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.2

全て関数名の解決が出来ていないために発生するエラーですね。 InitINstance,wndProc,_mainが無いというエラー(3つ)と未解決のシンボルが存在すると言うエラーで合計4つのエラーが報告されています。 ソースコードを良く見てください。 InitINstanceですか?InitInstanceでは無いですか? wndProcですか?WndProcまたはWindowProc,WindProcではないですか? Win32Applicationでプロジェクトを作成していますか? Win32 Console Applicationで作成していませんか?

kimaira
質問者

補足

もう一度いろいろ直してみたのですが。 この二つのエラーの意味がわかりませんどうか教えてください、お願いします、 (猫はファイル名) LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です Debug/猫.exe : fatal error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー

  • Seiryo
  • ベストアンサー率13% (27/203)
回答No.1

エラーのでるソースコードも一緒に 書き込んだ方がよりよいとおもいます。 猫以下にはなりたくないですね