龍神録プログラムで”敵にショット撃たせよう”の項目でSHOT_BULLET_MAXが定義されてないとでます。
見直しても説明通りできている見たいなんですがなぜでしょう?
エラーメッセージは↓のように出ました。
\test project\project\1章\mydat\include\struct.h(58) : error C2065: 'SHOT_BULLET_MAX' : 定義されていない識別子です。
龍神録プログラム
Re:龍神録プログラム
define.hの方にSHOT_BULLET_MAXを定義していないからだと思います。
あと、struct.hでSHOT_BULLET_MAXを使っているなら、それ以前にdefine.hを宣言してください。
あと、struct.hでSHOT_BULLET_MAXを使っているなら、それ以前にdefine.hを宣言してください。
Re:龍神録プログラム
うーん
define.hでは定義されています。
struct.hの宣言は#include "define.h"でいいんですか?
すると↓のようなエラーがでます。
test project\project\1章\mydat\include\define.h(10) : fatal error C1014: インクルード ファイルが多すぎます : 深さ = 1024
define.hでは定義されています。
struct.hの宣言は#include "define.h"でいいんですか?
すると↓のようなエラーがでます。
test project\project\1章\mydat\include\define.h(10) : fatal error C1014: インクルード ファイルが多すぎます : 深さ = 1024
Re:龍神録プログラム
ちゃおさんがおっしゃっているのはdefine.hにおいて
>#include "struct.h"
↑のまえに
>#define SHOT_BULLET_MAX 1000
↑を書く必要がある、ということだと思います。
おそらく問題があるであろうdefine.hの一例を添付しました。確認してください
いちおう言っておきますが、あなたの書いたstruct.hの#include "define.h"は消してくださいね。
龍神録プログラムの館ではソースを公開していますのでそれをダウンロードしておき、わからない時はまずそちらを確認する事をおすすめします。
>#include "struct.h"
↑のまえに
>#define SHOT_BULLET_MAX 1000
↑を書く必要がある、ということだと思います。
おそらく問題があるであろうdefine.hの一例を添付しました。確認してください
いちおう言っておきますが、あなたの書いたstruct.hの#include "define.h"は消してくださいね。
龍神録プログラムの館ではソースを公開していますのでそれをダウンロードしておき、わからない時はまずそちらを確認する事をおすすめします。
Re:龍神録プログラム
>>すると↓のようなエラーがでます。
>>test project\project\1章\mydat\include\define.h(10) : fatal error C1014: インクルード ファイルが多すぎます : 深さ = 1024
そのエラーは多分、無限インクルードをしているのではないでしょうか。
(名前は勝手に付けました)
下記のような構成になっているとします。
----------<Test.h>-------------
#include"Test.h"
#define SHOT_BULLET_MAX 1000
-------------------------------
----------<Main.cpp>-----------
#include<stdio.h>
#include"Test.h"
int main(void)
{
return(0);
}
-------------------------------
#includeは基本、単純な文字列置換をします。
なので、インクルードをすると、下記の様に変化します。
---------------------------------------
#include<stdio.h>
#include"Test.h"
#define SHOT_BULLET_MAX 1000
int main(void)
{
return(0);
}
---------------------------------------
で、また#include"Test.h"が出てくるので、さらに置換します。
---------------------------------------
#include<stdio.h>
#include"Test.h"
#define SHOT_BULLET_MAX 1000
#define SHOT_BULLET_MAX 1000
int main(void)
{
return(0);
}
---------------------------------------
さらにもう一度。
---------------------------------------
#include<stdio.h>
#include"Test.h"
#define SHOT_BULLET_MAX 1000
#define SHOT_BULLET_MAX 1000
#define SHOT_BULLET_MAX 1000
int main(void)
{
return(0);
}
---------------------------------------
見れば分かりますが、永遠に置換され続けます。
よって、深さが1024を超えてしまい、エラーとなります。
>>test project\project\1章\mydat\include\define.h(10) : fatal error C1014: インクルード ファイルが多すぎます : 深さ = 1024
そのエラーは多分、無限インクルードをしているのではないでしょうか。
(名前は勝手に付けました)
下記のような構成になっているとします。
----------<Test.h>-------------
#include"Test.h"
#define SHOT_BULLET_MAX 1000
-------------------------------
----------<Main.cpp>-----------
#include<stdio.h>
#include"Test.h"
int main(void)
{
return(0);
}
-------------------------------
#includeは基本、単純な文字列置換をします。
なので、インクルードをすると、下記の様に変化します。
---------------------------------------
#include<stdio.h>
#include"Test.h"
#define SHOT_BULLET_MAX 1000
int main(void)
{
return(0);
}
---------------------------------------
で、また#include"Test.h"が出てくるので、さらに置換します。
---------------------------------------
#include<stdio.h>
#include"Test.h"
#define SHOT_BULLET_MAX 1000
#define SHOT_BULLET_MAX 1000
int main(void)
{
return(0);
}
---------------------------------------
さらにもう一度。
---------------------------------------
#include<stdio.h>
#include"Test.h"
#define SHOT_BULLET_MAX 1000
#define SHOT_BULLET_MAX 1000
#define SHOT_BULLET_MAX 1000
int main(void)
{
return(0);
}
---------------------------------------
見れば分かりますが、永遠に置換され続けます。
よって、深さが1024を超えてしまい、エラーとなります。
Re:龍神録プログラム
--- define.h に以下を追加 ---
//敵1匹が持つ弾の最大数
#define SHOT_BULLET_MAX 1000
//一度に画面に表示できる敵の弾幕の最大数
#define SHOT_MAX 30
//ショットの種類の最大数
#define SHOT_KND_MAX 1
//効果音の種類の最大数
#define SE_MAX 100
//敵の行動パターンの最大数
#define ENEMY_PATTERN_MAX 11
↑をdefine.hに書いている
#include "struct.h"
の下に追加しているのではないでしょうか
#include "struct.h"
をdefine.hの一番下の行に移動しましょう
//敵1匹が持つ弾の最大数
#define SHOT_BULLET_MAX 1000
//一度に画面に表示できる敵の弾幕の最大数
#define SHOT_MAX 30
//ショットの種類の最大数
#define SHOT_KND_MAX 1
//効果音の種類の最大数
#define SE_MAX 100
//敵の行動パターンの最大数
#define ENEMY_PATTERN_MAX 11
↑をdefine.hに書いている
#include "struct.h"
の下に追加しているのではないでしょうか
#include "struct.h"
をdefine.hの一番下の行に移動しましょう