トップページ > 過去ログ > 記事閲覧
外部シンボルのエラー
名前:ヒデトシ 日時: 2007/08/31 20:21

初めまして、いきなりの質問で申し訳ないのですがVisualStudio2005とDXライブラリを使いプログラムをビルドすると↓のエラーが出てしまいます。 エラー 1 error LNK2001: 外部シンボル ""private: virtual void __thiscall GameFrame::drawGameMain(void)" (?drawGameMain@GameFrame@@EAEXXZ)" は未解決です。 main.obj エラー 2 error LNK2001: 外部シンボル ""private: virtual void __thiscall GameFrame::drawGameClear(void)" (?drawGameClear@GameFrame@@EAEXXZ)" は未解決です。 main.obj エラー 3 error LNK2001: 外部シンボル ""private: virtual void __thiscall GameFrame::drawGameOver(void)" (?drawGameOver@GameFrame@@EAEXXZ)" は未解決です。 main.obj エラー 4 fatal error LNK1120: 外部参照 3 が未解決です。 C:\Documents and Settings\Disney Master\My Documents\ゲームプログラム\Game Kadai\Debug\Game Kadai.exe ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=472の過去ログを見させて頂いて、自分もコンソールアプリケーションを使っている事に気がつきまして ttp://homepage2.nifty.com/natupaji/DxLib/dxuse_vc2005.html書いてある通りにやったのですが、エラーが消えません 申し訳ありませんがどなたか対処法を教えて頂けませんでしょうか?よろしくお願い致します。

Page: 1 |

Re: 外部シンボルのエラー ( No.1 )
名前:aujourd'hui 日時:2007/09/01 17:31

初めまして。 まず、drawGameMain、drawGameClear、drawGameOverの3つの関数は仮想関数(データ型の前にvirtualというヤツついてる関数)だと思うので、どこかで呼び出す場合、処理を実装(定義)しなければなりません。 そうしなければ、未解決エラーになります。 もし、処理を実装(定義)せずに呼び出す場合、 例えば、宣言している仮想関数を virtual void drawGameMain(){} virtual void drawGameClear(){} virtual void drawGameOver(){} と言う風に、()後にブレース{}を付け足し、空の関数定義をして実行したりします。 あと、privateと表記されているので、GameFrameクラス以外からは呼び出すことが出来ないので注意しましょう
Re: 外部シンボルのエラー ( No.2 )
名前:ヒデトシ 日時:2007/09/01 21:32

aujourd'huiさん、教えて頂きありがとうございます かなりわかりやすく教えて頂いたので助かります 本当にありがとうございました。

Page: 1 |