初めまして、NEKO-Tと申します。
素人なもので基礎を覚えてから自分なりに弄ろうと思いプログラムを勉強させて頂いてます。
現在龍神録のPSP化を試みていますが4章でのエラーがどうしても理解できなくて相談しに来ました。
(いきなりPSP化は無謀なのかもしれません)
OS:vista Visual C++ 2008 Express Edition
1>graph.c: In function 'graph_ch':
1>graph.c:7: error: too few arguments to function 'DrawRotaGraphF'
1>make: *** [graph.o] Error 1
1>Project : error PRJ0019: ツールはエラー コードを返しました : "メイクファイル プロジェクト動作を実行しています。"
と、上記のエラーが表示されたので
graph.cが怪しいと思い4章と比較してみたのですが一見どこも間違いが分かりません。
----graph.c----
#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();
}
過去に似たようなのが無いか探してみたんですが見つからなかったもので書き込ませて頂きました。
宜しくお願い致します。
龍神録4章のエラーに関して
Re:龍神録4章のエラーに関して
C言語の文法を何処までご存知かわかりませんが、DrawRotaGraphFのパラメータが足らないよってエラーです。
DrawRotaGraphFのプロトタイプ宣言がWin版とポータブル版で違うのかもしれません。DrawRotaGraphFが定義してあるヘッダを確認してみてください。
あとDXライブラリ・ポータブルでdouble/floatを多用するのはスピード的にはお薦め出来ません(つまり、そのぐらいは改造出来るようにならないと処理落ちで遅くなりますよって話です)。
DrawRotaGraphFのプロトタイプ宣言がWin版とポータブル版で違うのかもしれません。DrawRotaGraphFが定義してあるヘッダを確認してみてください。
あとDXライブラリ・ポータブルでdouble/floatを多用するのはスピード的にはお薦め出来ません(つまり、そのぐらいは改造出来るようにならないと処理落ちで遅くなりますよって話です)。
Re:龍神録4章のエラーに関して
C言語知識は始めたてレベルです。
DrawRotaGraphFのパラメータが足りないのはdxlibpのヘッダを確認して理解しました。
そうするとどうして本家も足りないのにエラーが起きないのかが疑問になりましたが
知識不足過ぎるので自分で調べてみます。
graph.cに関しては疑問が解決しました。質問して良かったです。
内容弄ってまた違うエラー出てきましたが1つずつ処理していこうと思いますが
煮詰まったらまたお聞きしに来るかもしれません。その時も宜しくお願いします。
返答ありがとうございました<(_ _)>
DrawRotaGraphFのパラメータが足りないのはdxlibpのヘッダを確認して理解しました。
そうするとどうして本家も足りないのにエラーが起きないのかが疑問になりましたが
知識不足過ぎるので自分で調べてみます。
graph.cに関しては疑問が解決しました。質問して良かったです。
内容弄ってまた違うエラー出てきましたが1つずつ処理していこうと思いますが
煮詰まったらまたお聞きしに来るかもしれません。その時も宜しくお願いします。
返答ありがとうございました<(_ _)>
Re:龍神録4章のエラーに関して
>そうするとどうして本家も足りないのにエラーが起きないのかが疑問になりましたが知識不足過ぎるので自分で調べてみます。
どちらかと言うとそれはC++の機能ですので、調べるとややこしくなるかも知れません。
DXライブラリ自体はC++で記述されてますので、C++の機能を使っているところがあります。
今回のも、その一つでパラメータ省略時の値を予め決めておくことが出来ます。
extern int DrawRotaGraphF( float xf, float yf, double ExRate, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ;
このTurnFlag = FALSEってやつですね。
純粋なC言語では出来ませんので、覚えておいてください。
つまり、C言語の参考書やサイトには書いてありません。
どちらかと言うとそれはC++の機能ですので、調べるとややこしくなるかも知れません。
DXライブラリ自体はC++で記述されてますので、C++の機能を使っているところがあります。
今回のも、その一つでパラメータ省略時の値を予め決めておくことが出来ます。
extern int DrawRotaGraphF( float xf, float yf, double ExRate, double Angle, int GrHandle, int TransFlag, int TurnFlag = FALSE ) ;
このTurnFlag = FALSEってやつですね。
純粋なC言語では出来ませんので、覚えておいてください。
つまり、C言語の参考書やサイトには書いてありません。