龍神録プログラミング5章について
龍神録プログラミング5章について
はじめまして「おかし」といいます
龍神録プログラミング5章についての質問です。
サイトのほうを見てやっているのですが、
1>load.obj : error LNK2001: 外部シンボル ""int (* img_ch)[12]" (?img_ch@@3PAY0M@HA)" は未解決です。
1>graph.obj : error LNK2001: 外部シンボル ""int (* img_ch)[12]" (?img_ch@@3PAY0M@HA)" は未解決です。
1>graph.obj : error LNK2001: 外部シンボル ""struct ch_t ch" (?ch@@3Uch_t@@A)" は未解決です。
1>C:\Documents and Settings\・・\デスクトップ\project\project\プロジェクト\Debug\RyuJin.exe : fatal error LNK1120: 外部参照 2 が未解決です。
といったエラーがでてこまっています。
プロジェクトの一括ダウンロードして見比べてみたのですが、同じように書いてあるように思えます(見落としがあるかもしれません)
できれば、エラーの意味、考えられる原因、対処法を教えていただけると幸いです。
C言語暦は一ヶ月くらいです。
OSはwindowsXP
コンパイラはVC++2008EEです。
関係ありませんが、こういった掲示板に書き込むのは初めてですので、至らない点などあると思いますが回答よろしくお願いします。
龍神録プログラミング5章についての質問です。
サイトのほうを見てやっているのですが、
1>load.obj : error LNK2001: 外部シンボル ""int (* img_ch)[12]" (?img_ch@@3PAY0M@HA)" は未解決です。
1>graph.obj : error LNK2001: 外部シンボル ""int (* img_ch)[12]" (?img_ch@@3PAY0M@HA)" は未解決です。
1>graph.obj : error LNK2001: 外部シンボル ""struct ch_t ch" (?ch@@3Uch_t@@A)" は未解決です。
1>C:\Documents and Settings\・・\デスクトップ\project\project\プロジェクト\Debug\RyuJin.exe : fatal error LNK1120: 外部参照 2 が未解決です。
といったエラーがでてこまっています。
プロジェクトの一括ダウンロードして見比べてみたのですが、同じように書いてあるように思えます(見落としがあるかもしれません)
できれば、エラーの意味、考えられる原因、対処法を教えていただけると幸いです。
C言語暦は一ヶ月くらいです。
OSはwindowsXP
コンパイラはVC++2008EEです。
関係ありませんが、こういった掲示板に書き込むのは初めてですので、至らない点などあると思いますが回答よろしくお願いします。
Re:龍神録プログラミング5章について
もしかしたら
初期化宣言されないか(i=0だと=0が初期化宣言)
グローバル宣言で
int img_ch[12]=0;
とやったり
エクスターン宣言
でextern int_ch[12];とやってなかったり、
load.cppで
キャラクター画像を読み込んでなかったりしていませんか?
初期化宣言されないか(i=0だと=0が初期化宣言)
グローバル宣言で
int img_ch[12]=0;
とやったり
エクスターン宣言
でextern int_ch[12];とやってなかったり、
load.cppで
キャラクター画像を読み込んでなかったりしていませんか?
Re:龍神録プログラミング5章について
回答ありがとうございます。
しかし、グローバル変数での初期化はしていませんし、extern宣言は5章の上のほうの処理を書いた後、全て消してしまいました。(消さないほうがよかった宣言もあるのでしょうか?)
GV.hは、
しかし、グローバル変数での初期化はしていませんし、extern宣言は5章の上のほうの処理を書いた後、全て消してしまいました。(消さないほうがよかった宣言もあるのでしょうか?)
GV.hは、
#include "../../../include/DxLib.h" #include "define.h" #ifdef GLOBAL_INSTANCE #define GLOBAL #else #define GLOBAL extern #endif #include "function.h" //関数宣言 //画像用変数宣言部 GLOBAL int img_ch[2][12]=0; //キャラクタ画像9枚分×2 //構造体変数宣言部 GLOBAL ch_t ch; //キャラクタデータ宣言load.cppは、
#include "../include/GV.h" void load(){ LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ; }こんな感じです。
Re:龍神録プログラミング5章について
//画像用変数宣言部
GLOBAL int img_ch[2][12]=0;の
=0を消してみてください。
これが原因のきがします。
0を入れたのにそれにまた画像を入れちゃってますよ。
GLOBAL int img_ch[2][12]=0;の
=0を消してみてください。
これが原因のきがします。
0を入れたのにそれにまた画像を入れちゃってますよ。
Re:龍神録プログラミング5章について
消してみましたが、結果は変わりませんでした・・・・・。
エラーの意味は、あの部分の処理が終わっていないという意味で解釈してもよろしいでしょうか?
graph.cppのほうに問題があるのでしょうか?
あと、私の書いたコード、なんか読みにくいですね。今度から気をつけます。
エラーの意味は、あの部分の処理が終わっていないという意味で解釈してもよろしいでしょうか?
graph.cppのほうに問題があるのでしょうか?
あと、私の書いたコード、なんか読みにくいですね。今度から気をつけます。
Re:龍神録プログラミング5章について
GV.hの
#ifdef GLOBAL_INSTANCE
とmain.cppの
#define GLOBAL_INSTANCE
は同じようにGLOBAL_INSTANCEになっていますか?
プロジェクトを一括ダウンロードして、5章を見てみると、
GLOBAL_INSTANCEではなくて_GLOBAL_INSTANCE_
となっていたので確認してみてください。
#ifdef GLOBAL_INSTANCE
とmain.cppの
#define GLOBAL_INSTANCE
は同じようにGLOBAL_INSTANCEになっていますか?
プロジェクトを一括ダウンロードして、5章を見てみると、
GLOBAL_INSTANCEではなくて_GLOBAL_INSTANCE_
となっていたので確認してみてください。
Re:龍神録プログラミング5章について
回答ありがとうございます
両方とも、GLOBAL_INSTANCEとなっていたので
_GLOBAL_INSTANCE_と直してビルドしてみましたが、結果かわらずです・・・・。
それと、私のDLしたソースはGLOBAL_INSTANCEなっていたのですが・・・・。
なかなか解決せず申し訳ないです;;
両方とも、GLOBAL_INSTANCEとなっていたので
_GLOBAL_INSTANCE_と直してビルドしてみましたが、結果かわらずです・・・・。
それと、私のDLしたソースはGLOBAL_INSTANCEなっていたのですが・・・・。
なかなか解決せず申し訳ないです;;
Re:龍神録プログラミング5章について
はい。
main.cppです。
main.cppです。
#define GOBAL_INSTANCE #include "../include/GV.h" //ループで必ず行う3大処理 int ProcessLoop(){ if(ProcessMessage()!=0)return -1;//プロセス処理がエラーなら-1を返す if(ClearDrawScreen()!=0)return -1;//画面クリア処理がエラーなら-1を返す GetHitKeyStateAll_2();//現在のキー入力処理を行う return 0; } int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ ChangeWindowMode(TRUE);//ウィンドウモード if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化 load();//データロード while(ProcessLoop()==0){//メインループ graph_main();//描画メイン if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク ScreenFlip();//裏画面反映 } DxLib_End();//DXライブラリ終了処理 return 0; }よろしくお願いします。
Re:龍神録プログラミング5章について
ありがとうございます。
無事コンパイルできました^^
原因は、タイプミスだったようです・・・・お恥ずかしい・・・・
お手数をおかけしました。
この質問に回答してくださった皆様、本当に本当にありがとうございました。
また質問させてもらうことがありましたらまたよろしくお願いします^^;
無事コンパイルできました^^
原因は、タイプミスだったようです・・・・お恥ずかしい・・・・
お手数をおかけしました。
この質問に回答してくださった皆様、本当に本当にありがとうございました。
また質問させてもらうことがありましたらまたよろしくお願いします^^;
再入力の処理
お世話になっております。
住所登録プログラムを作成しているのですが、性別入力時に2文字以上入力された場合に再入力する処理と、1か2以外を入力された場合に再入力する処理を入れたいのですが
do{
printf("性別を入力してください(1:男性/2:女性)>>>");
scanf("%s",temp.sei);
/* 最大文字数を超えた場合再入力 */
if(strlen(temp.sei)>=SEI){
printf("---文字数超過---\n\n");
continue;
}else
if(strcmp(temp.sei,dansei)!=0 && strcmp(temp.sei,jyosei)!=0){
printf("1か2を入力してください\n");
continue;
}
puts("");
}
}while(strlen(temp.sei)>=SEI);
上記のようにすると「1か2を入力してください」と表示された後、再入力ではなく次の処理に飛んでしまいます。
どのようにすれば再入力の処理ができますか??;
住所登録プログラムを作成しているのですが、性別入力時に2文字以上入力された場合に再入力する処理と、1か2以外を入力された場合に再入力する処理を入れたいのですが
do{
printf("性別を入力してください(1:男性/2:女性)>>>");
scanf("%s",temp.sei);
/* 最大文字数を超えた場合再入力 */
if(strlen(temp.sei)>=SEI){
printf("---文字数超過---\n\n");
continue;
}else
if(strcmp(temp.sei,dansei)!=0 && strcmp(temp.sei,jyosei)!=0){
printf("1か2を入力してください\n");
continue;
}
puts("");
}
}while(strlen(temp.sei)>=SEI);
上記のようにすると「1か2を入力してください」と表示された後、再入力ではなく次の処理に飛んでしまいます。
どのようにすれば再入力の処理ができますか??;