ページ 1 / 1
龍神録4章のgraph.cppについて
Posted: 2011年2月05日(土) 23:35
by フォッシル
初めましてフォッシルと申します。
C言語はまだまだ勉強中の初心者です。
そして質問なんですがgraph.cppでエラーが続いております。
エラー内容は、
1> graph.cpp
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(3): error C2146: 構文エラー : ';' が、識別子 'ch' の前に必要です。
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(3): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(3): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(7): error C2228: '.x' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(7): error C2228: '.y' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(7): error C2228: '.img' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
とこのように表示されます。
環境はVista、VC++ 2010 Expressです。
またこうゆう質問も初めてなので何を書きこんでいいのかわからないので多少大目に見て下さい。
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月05日(土) 23:50
by bitter_fox
フォッシル さんが書きました:
エラー内容は、
1> graph.cpp
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(3): error C2146: 構文エラー : ';' が、識別子 'ch' の前に必要です。
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(3): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(3): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(7): error C2228: '.x' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(7): error C2228: '.y' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(7): error C2228: '.img' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
とこのように表示されます。
ソースコードがないとどこがおかしいのか確認できないので、ソースコードも載せていただけますでしょうか?
(載せる際にはcodeタグで囲っていただきますようにお願いします。)
ちなみに、エラーの雰囲気としてはタイポが原因のように思います。
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月06日(日) 00:10
by フォッシル
#include "../include/GV.h"
extern ch_t ch;
extern int img_ch[2][12];
void graph_ch(){
DrawRotaGraphF( ch.x,ch.y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
}
void graph_main(){
graph_ch();
}
です。
codeタグで囲めてなかったらすみません。
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月06日(日) 00:22
by bitter_fox
フォッシル さんが書きました:コード:
#include "../include/GV.h"
extern ch_t ch;
extern int img_ch[2][12];
void graph_ch(){
DrawRotaGraphF( ch.x,ch.y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
}
void graph_main(){
graph_ch();
}
どうやら、ch_tが正常に定義されていないように思います。
GV.hの中身は
コード:
#include "../../../include/DxLib.h"
#include "define.h"
また、define.hの中身は
そして、struct.hの中身は
コード:
//キャラクターに関する構造体
typedef struct{
int flag; //フラグ
int cnt; //カウンタ
int power; //パワー
int point; //ポイント
int score; //スコア
int num; //残機数
int mutekicnt; //無敵状態とカウント
int shot_mode; //ショットモード
int money; //お金
int img;
int slow; //スローかどうか
double x,y; //座標
}ch_t;
になっていますか?
フォッシル さんが書きました:
codeタグで囲めてなかったらすみません。
プレビュー機能を使用すると投稿した際にどういった風に表示されるのかを確認できますので、次回からご利用ください。
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月06日(日) 23:32
by フォッシル
すみません。遅れました。
bitter_fox さんが書きました:プレビュー機能を使用すると投稿した際にどういった風に表示されるのかを確認できますので、次回からご利用ください。
わかりました。
確認してみます。
コード:
#include "../include/GV.h"
extern ch_t ch;
extern int img_ch[2][12];
void graph_ch(){
DrawRotaGraphF( ch.x,ch.y,1.0f,0.0f,img_ch[0][ch.img],TRUE);
}
void graph_main(){
graph_ch();
}
やってみましたができました。ありがとうございます。
内容がそれてしまいました。肝心のgraph.cppの方は相変わらず ch_t が定義されないままです。
言われた通り確認しましたが違いはありませんでした。
あと返信が遅れる場合がありますのでどうかご勘弁を。
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月06日(日) 23:55
by bitter_fox
フォッシル さんが書きました:
内容がそれてしまいました。肝心のgraph.cppの方は相変わらず ch_t が定義されないままです。
言われた通り確認しましたが違いはありませんでした。
ですか・・・
一応確認のために三つのファイルの中身を載せてもらえますでしょうか?
また、main関数内でエラーは発生していませんか?
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月07日(月) 23:10
by フォッシル
GV.hの中身は
コード:
#include "../../../include/DxLib.h"
#include "define.h"
define.hの中身は
struct.hの中身は
コード:
//キャラクターに関する構造体
typedef struct{
int flag; //フラグ
int cnt; //カウンタ
int power; //パワー
int point; //ポイント
int score; //スコア
int num; //残機数
int mutekicnt; //無敵状態とカウント
int shot_mode; //ショットモード
int money; //お金
int img;
int slow; //スローかどうか
double x,y; //座標
}ch_t;
そしてmain関数の中身
コード:
#define GLOBAL_INSTANCE
#include "../include/GV.h"
//現在のキー入力処理を行う
extern int GetHitKeyStateAll_2();
//受け取ったキー番号の現在の入力状態を返す
extern int CheckStateKey(unsigned char Handle);
//ループで必ず行う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;//初期化と裏画面化
while(ProcessLoop()==0){//メインループ
if(CheckStateKey(KEY_INPUT_ESCAPE)==1)break;//エスケープが入力されたらブレイク
ScreenFlip();//裏画面反映
}
DxLib_End();//DXライブラリ終了処理
return 0;
}
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月07日(月) 23:37
by bitter_fox
フォッシル さんが書きました:
そしてmain関数の中身
コード:
#define GLOBAL_INSTANCE
#include "../include/GV.h"
//現在のキー入力処理を行う
extern int GetHitKeyStateAll_2();
//受け取ったキー番号の現在の入力状態を返す
extern int CheckStateKey(unsigned char Handle);
//ループで必ず行う3大処理
int ProcessLoop(){
// 略
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
// 略
}
main.cppで変数ch等が定義されてないですね・・・
おそらくそれが原因でしょう。
龍神録の館(四章)でmain.cppは次のようになっています。
コード:
#define GLOBAL_INSTANCE
#include "../include/GV.h"
//現在のキー入力処理を行う
extern int GetHitKeyStateAll_2();
//受け取ったキー番号の現在の入力状態を返す
extern int CheckStateKey(unsigned char Handle);
// ここから下が抜けています。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
//データのロード
extern void load();
//描画メイン
extern void graph_main();
int img_ch[2][12]; //キャラクタ画像9枚分 X2(変身用)
ch_t ch; //キャラクタデータ宣言
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ここまで
//ループで必ず行う3大処理
int ProcessLoop(){
// 略
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){
// 略
}
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月09日(水) 00:03
by フォッシル
それでも 識別子”ch_t” が定義されないままになっています。
一応エラー内容も載せておきます。
コード:
main.cpp
1>c:\users\takei\documents\visual studio 2010\projects\main.cpp(19): error C2146: 構文エラー : ';' が、識別子 'ch' の前に必要です。
1>c:\users\takei\documents\visual studio 2010\projects\main.cpp(19): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\projects\main.cpp(19): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1> graph.cpp
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(3): error C2146: 構文エラー : ';' が、識別子 'ch' の前に必要です。
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(3): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(3): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(7): error C2228: '.x' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(7): error C2228: '.y' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\takei\documents\visual studio 2010\projects\graph.cpp(7): error C2228: '.img' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月09日(水) 06:19
by bitter_fox
フォッシル さんが書きました:それでも 識別子”ch_t” が定義されないままになっています。
うーん、そうですか・・・
現時点でこれ以上見当がつかないですね・・・
(もし可能であれば、お手数をお掛けしますが第四章のプロジェクト一式を圧縮して上げていただけますか?)
(ファイルの添付はスパム等の関係からかゲストには許可されてないようなので、
http://www.axfc.net/uploader/
などをご利用ください。)
あと、この問題で龍神録の開発がストップしてしまうのは有益ではないので、第一章でダウンロードしたプロジェクトの第四章の所から進めるというのも一つの手だと思います。
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月11日(金) 00:37
by フォッシル
bitter_fox さんが書きました:現時点でこれ以上見当がつかないですね・・・
(もし可能であれば、お手数をお掛けしますが第四章のプロジェクト一式を圧縮して上げていただけますか?)
(ファイルの添付はスパム等の関係からかゲストには許可されてないようなので、
http://www.axfc.net/uploader/
などをご利用ください。)
試しにこのサイトに入ったのですが、よくわからないのでできれば解説をお願いします。
あと気づいた事なんですが、第4章load.cppは
コード:
#include "../include/GV.h"
extern int img_ch[2][12];
void load(){
LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
}
となっているのに対し、僕のは
コード:
#include "../include/GV.h"
extern int img_ch[2][12];
int image[16];
void load(){
LoadDivGraph ( "char.png" , 16 , 4 , 4 , 32 , 32 , image );
}
となっています。
第4章load.cppだと
コード:
1>load.obj : error LNK2001: 外部シンボル ""int (* img_ch)[12]" (?img_ch@@3PAY0M@HA)" は未解決です。
というエラーが出てしまうので変えたのですが、何か関係しますでしょうか?
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月11日(金) 04:08
by bitter_fox
フォッシル さんが書きました:
試しにこのサイトに入ったのですが、よくわからないのでできれば解説をお願いします。
こちらに簡単な使い方が乗ってますので参考にしてください。
http://www.axfc.net/uploader/howto.html
圧縮したフォルダが2MB以下の場合は、
http://www1.axfc.net/uploader/Sc/file_post.pl
ここをご利用ください。
まず、削除パスワードとDLキーワードを設定して、下の「以上の内容でアップロードする」をクリックして次に進みます。
次に「参照」をクリックしてアップロードするファイルを選択して「以上の内容でアップロードする」をクリックしてアップロードを完了してください。
アップロードが完了したら「ファイルIDのみ」と言うリンクを開くとダウンロードページに飛びますので、アドレスバーに表示されているURLを教えてください。(DLキーワードを設定したのであればそれも教えてください)
フォッシル さんが書きました:あと気づいた事なんですが、
第4章load.cppだと
コード:
1>load.obj : error LNK2001: 外部シンボル ""int (* img_ch)[12]" (?img_ch@@3PAY0M@HA)" は未解決です。
というエラーが出てしまうので変えたのですが、何か関係しますでしょうか?
外部シンボルが未解決と言うのは変数などが定義されていないといったことを示しています。
この場合は、img_chがmain.cppで定義されていなかったために発生しました。
main.cppを修正したのであればもうそのエラーは発生しないと思いますので、第四章の物に戻しておいてください。
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月11日(金) 21:54
by フォッシル
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月12日(土) 06:46
by bitter_fox
早速見させてもらいました
が、どうやらソースの問題と言うよりファイル構成の問題のようです。追記しました。
現在のファイル構成は
コード:
フォルダー パスの一覧: ボリューム Windows 7
ボリューム シリアル番号は 2282-D87E です
RyuJin
│ define.h
│ function.h
│ graph.cpp
│ GV.h
│ key.cpp
│ load.cpp
│ Log.txt
│ main.cpp
│ struct.h
│
├─mydat
│ ├─include
│ │ 0.png
│ │ define.h
│ │ func.h
│ │ function.h
│ │ GV.h
│ │ struct.h
│ │
│ ├─PSD
│ └─source
│ boss_shot.cpp
│ boss_shotH.cpp
│ char.cpp
│ cshot.cpp
│ enemy.cpp
│ enemy_act_pattern.cpp
│ fps.cpp
│ graph.cpp
│ graph_back.cpp
│ ini.cpp
│ key.cpp
│ load.cpp
│ main.cpp
│ music.cpp
│ out.cpp
│ shot.cpp
│ shotH.cpp
│
このようになってますが、プログラムはRyuJin直下に置かれていてそこから
コード:
#include "../include/GV.h"
としているのでヘッダを正常に読み込めてないと思います。
龍神録ではmyDat\includeにヘッダファイルを
myDat\sourceにソースファイルを入れるような構造になっているのでそれに従った方がスムーズに作れると思います。
http://dixq.net/rp/1.html
あと、main.cppですが
コード:
struct ch_t{
int x, y, img
;}
ここは
としておきましょう。
[hr][追記]
あれから細かく見させてもらいました、
コード:
typedef struct{
int flag; //フラグ
int cnt; //カウンタ
int power; //パワー
int point; //ポイント
int score; //スコア
int num; //残機数
int mutekicnt; //無敵状態とカウント
int shot_mode; //ショットモード
int money; //お金
int img; //画像
int slow; //スローかどうか
int x;
int y;
double x,y; //座標
}ch_t;
int型のx, yとdouble型のx, yが重複しています。
ここを修正して、ファイル構成を正しくすると正常にコンパイルすることができました。
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月12日(土) 21:04
by フォッシル
bitter_fox さんが書きました:龍神録ではmyDat\includeにヘッダファイルを
myDat\sourceにソースファイルを入れるような構造になっているのでそれに従った方がスムーズに作れると思います。
わかりました。そっちに入れてみたいと思います。
あと色々やっていたらエラーが増えてしまったのですが、何か関係してますでしょうか?
コード:
1> main.cpp
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(16): error C2146: 構文エラー : ';' が、識別子 'ch' の前に必要です。
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(16): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(16): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(20): error C3861: 'ProcessMessage': 識別子が見つかりませんでした
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(21): error C3861: 'ClearDrawScreen': 識別子が見つかりませんでした
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(26): error C2146: 構文エラー : ';' が、識別子 'WinMain' の前に必要です。
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(26): error C2065: 'HINSTANCE' : 定義されていない識別子です。
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(26): error C2146: 構文エラー : ')' が、識別子 'hInstance' の前に必要です。
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(26): error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(26): error C2059: 構文エラー : ')'
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(26): error C2143: 構文エラー : ';' が '{' の前にありません。
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(26): error C2447: '{' : 対応する関数ヘッダーがありません (旧形式の仮引数リスト?)
1> load.cpp
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\load.cpp(6): error C3861: 'LoadDivGraph': 識別子が見つかりませんでした
1> key.cpp
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\key.cpp(7): error C3861: 'GetHitKeyStateAll': 識別子が見つかりませんでした
1> graph.cpp
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\graph.cpp(7): error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\graph.cpp(10): error C2065: 'TRUE' : 定義されていない識別子です。
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\graph.cpp(10): error C3861: 'DrawRotaGraphF': 識別子が見つかりませんでした
1> コードを生成中...
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月13日(日) 08:48
by bitter_fox
フォッシル さんが書きました:
あと色々やっていたらエラーが増えてしまったのですが、何か関係してますでしょうか?
コード:
1> main.cpp
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(20): error C3861: 'ProcessMessage': 識別子が見つかりませんでした
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\main.cpp(21): error C3861: 'ClearDrawScreen': 識別子が見つかりませんでした
1> load.cpp
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\load.cpp(6): error C3861: 'LoadDivGraph': 識別子が見つかりませんでした
1> key.cpp
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\key.cpp(7): error C3861: 'GetHitKeyStateAll': 識別子が見つかりませんでした
1> graph.cpp
1>c:\users\takei\documents\visual studio 2010\project\ryujin.sln\1章\mydat\source\graph.cpp(10): error C3861: 'DrawRotaGraphF': 識別子が見つかりませんでした
1> コードを生成中...
これらは、DxLib.hをインクルード出来てないためです。(またその他のエラーもそのあおりを受けたためです。)
GV.hを次のようにしてください。(変更点は一つ目のincludeです。)
コード:
#include "../../../include/dxlib.h"
#include "define.h"
あと、RyuJinフォルダ内にあるdatフォルダですが、これも龍神録の館に従って次のような構成にした方が良いと思います。
コード:
├─dat
├─include
└─RyuJin.sln
それから、正常に実行するにはLoad.cpp内のload関数の修正が必要です。(画像ファイルの指定が間違っています。)
コード:
void load(){
LoadDivGraph( "..RyuJin.sln/dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
}
これを次のようにしてください。
コード:
void load(){
LoadDivGraph( "../dat/img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0] ) ;
}
Re: 龍神録4章のgraph.cppについて
Posted: 2011年2月14日(月) 00:08
by フォッシル
解決しました。
bitter_fox さんが書きました:コード[Text]: 全て選択
123├─dat
├─include
└─RyuJin.sln
にしてから色々といじっていたらできました。
bitter_foxさん、ここまで協力してくださりありがとうごさいました。