龍神録プログラミングの館の13章について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ii

龍神録プログラミングの館の13章について

#1

投稿記事 by ii » 9年前

初めまして、C言語プログラムを勉強させていただいています。
まったくの初心者なのですが
龍神録プログラミングの館の13章が、
`SHOT_BULLET_MAX' : 定義されていない識別子です。
`ch_t' : 再定義されています。異なる基本型です。
とかいうのが、
沢山ででしまうのですが、
エラーが出て原因が解らず困っています。
何方か解決法を教えていただけないでしょうか?
使っているソフトはVisualC++2010ExpressEditionです。

アバター
あたっしゅ
記事: 274
登録日時: 9年前
住所: 東京23区
連絡を取る:

Re: 龍神録プログラミングの館の13章について

#2

投稿記事 by あたっしゅ » 9年前

うちじゃ、VC++ 2010 Express で、変換ウィザードが出て、デバッグしたら、ちゃんと走りました。
龍神録プログラミングの館の13章そのままじゃなくて、手を加えたところがおかしいのでは ?

>`SHOT_BULLET_MAX' : 定義されていない識別子です。

編集(E)/検索と置換(F)/クイック検索(F) で探したところ、SHOT_BULLET_MAX は、define.h で定義されてます。
define.h をインクルードしていないのでは ?

>`ch_t' : 再定義されています。異なる基本型です。

同じく、編集(E)/検索と置換(F)/クイック検索(F) で探したところ、ch_t は、struct.h で定義されてます。
struct.h が複数回インクルードされているのでは ?

エラーメッセージ自体の意味がわからないのでしょうか ?
全角空白がまぎれこんでしまったせいで、不適格なエラーメッセージがでることもありますが。
ダウンロードしなおすのが、手っ取り早いんじゃないかな。
手提鞄あたっしゅ、[MrAtassyu] http://ameblo.jp/mratassyu/
手提鞄屋魚有店(てさげかばんやうおありてん)
レスがついていないものを優先して、レスしています。時々、見当外れなレスをします。

アバター
Tatu
記事: 445
登録日時: 9年前
住所: 北海道

Re: 龍神録プログラミングの館の13章について

#3

投稿記事 by Tatu » 9年前

SHOT_BULLET_MAXについてはおそらくこれが原因なのでは?
ダウンロードしたプロジェクトではdefine.hの一番下でstruct.hをインクルードするようになっています。

#include "struct.h"の下に

//敵一匹が持つ弾の最大数
#define SHOT_BULLET_MAX 1000
などを書いてしまってはいませんか?


13章でこういう引っかかり方をする人が妙に多い気がします。
あまりよくわかっていない時は「以下を追加する」とだけ言われたら
一番上か一番下にしか追加しないからでしょう。

そのため、#include "struct.h"という文は
define.hではなく、GV.hにいれてはどうですか?

こんな風に
#include "../../../include/DxLib.h"
#include "define.h"
#include "struct.h"
#include "math.h"

移動させるときはdefine.hに最初からあるほうは忘れずに消しておいてくださいね。

ii

Re: 龍神録プログラミングの館の13章について

#4

投稿記事 by ii » 9年前

'shot_calc': 識別子が見つかりませんでした


'引数' : 'double' から 'float' への変換です。データが失われる可能性があります。


'引数' : 'double' から 'float' への変換です。データが失われる可能性があります。


'引数' : 'double' から 'float' への変換です。データが失われる可能性があります。


'引数' : 'double' から 'float' への変換です。データが失われる可能性があります。


'graph_bullet': 識別子が見つかりませんでした


'引数' : 'double' から 'float' への変換です。データが失われる可能性が
あります。


'引数' : 'double' から 'float' への変換です。データが失われる可能性があります。

というのが出できました。
どうしたらいいでしょう?改善策が全くわからないので助けて下さい。
後、初心者なので#include "struct.h"という文を
define.hではなく、GV.hにいれるのはどうやるのですか?
どう対処すればよいか分からないのでどなたか教えてください。

ii

Re: 龍神録プログラミングの館の13章について

#5

投稿記事 by ii » 9年前

すいません。
一応できましたが、何故か敵のショットが大玉の1種類しか撃ってきません。
敵にショットを撃たせてみよう。の実行結果のようになりません。
どうしたらいいでしょう?

アバター
Tatu
記事: 445
登録日時: 9年前
住所: 北海道

Re: 龍神録プログラミングの館の13章について

#6

投稿記事 by Tatu » 9年前

#include "struct.h"については書いてある通りにすればよいだけの話です。
間違ったものを保存するのが怖いのでしたら、
ソリューションのフォルダごとコピーしてバックアップするとよいです。
まあ、今後同様のミスがないのならばそのままでもよいでしょう。

doubleからfloatへの変換については警告であり、エラーではないので
今は無視しても構いません。後でそれに対する対処法が出てきます。

graph_bulletについて
ひょっとしてvoid graph_bullet(){からの部分を
graph_main()の定義よりも下に書いていませんでしたか?
ある関数を使う場合、それを使用する場所の前に定義かプロトタイプ宣言
を書かないと使えないという決まりになっています。

大玉しか出ないことについて
13章のページには読み込むエクセルファイルの変更については書いてなく、
12章のデータをそのまま使っているのであれば大玉しか出ません。

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 9年前
住所: 北海道札幌市
連絡を取る:

Re: 龍神録プログラミングの館の13章について

#7

投稿記事 by Dixq (管理人) » 9年前

記載が足りませんでしたね。すみません。
インクルード位置についての注意と、エクセルファイルについての記載を追加しました。

ii

Re: 龍神録プログラミングの館の13章について

#8

投稿記事 by ii » 9年前

できました。

あたっしゅさん
Tatuさん
Dixq さん
ありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る