トップページ > 過去ログ > 記事閲覧
include先でのDXライブラリの使用
名前:XM3 日時: 2008/02/14 00:07

WinMain関数内ではDXライブラリの初期化を行っているのですが、自分で定義した関数の中でDXライブラリの関数を使用すると、関数名が無効と弾かれてしまいます どのようにすればよいのでしょうか? ご教授お願いします

Page: 1 |

Re: include先でのDXライブラリの使用 ( No.1 )
名前:キーチック 日時:2008/02/14 01:21

もうちょっと具体的な情報が欲しいですね. 関数定義の位置関係などはどうなっているのかなど.... ちなみに,私は自分で定義した関数内でビシビシDXライブラリ関数使っていますが,そのようなことは経験がありません.
Re: include先でのDXライブラリの使用 ( No.2 )
名前:XM3 日時:2008/02/15 02:00

返信ありがとうございます 説明不足でした、すみません 下に問題の起こる場合の状態を簡単にまとめてみました お願いします //----------ここからtest.cpp------------ #include "test2.cpp" #include "DxLib.h" //関数のプロトタイプ宣言 int TestLoad(int X) ; // WinMain関数 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){ //DXライブラリ初期化 if( DxLib_Init() == -1 ) return -1 ; TestLoad ; } //------------ここからtest2.cpp------------- int TestLoad(int X){ // グラフィックのロード X = LoadGraph( "test.bmp" ) ; }
Re: include先でのDXライブラリの使用 ( No.3 )
名前:キーチック 日時:2008/02/15 02:46

上に書かれた情報で気になるのは下の3点です. 1. WinMain中に書かれているTestLoadでは引数を与えているか. 2. LoadGraphでの戻り値Xは,DrawGraphを使うときのグラフィックハンドルとして使われるが,WinMainには返しているのか. 3. include文は下の順番にしたほうが良いのではないか. #include "DxLib.h" #include "test2.cpp" この3つをチェックしてみて,駄目ならもう少し具体的な情報が欲しいかもしれません.
Re: include先でのDXライブラリの使用 ( No.4 )
名前: 日時:2008/02/15 06:04

外部参照について少し勉強しましょう。 cppファイルをincludeするのは良い手法では ありません。 今回の場合、VCなどの統合環境であれば単に test2.cpp内部で"DxLib.h"をインクルードすれば "test2.cpp"をインクルードするまでも無く、 コンパイルは通ると思います。(未確認ですが。。) 関数呼び出しになってないですが、 TestLoad;というのは単純に書きかけ?? 別件ですがTestLoad関数の引数はint型ですが、 引数で戻り値を受け取る場合はint*型にする必要が あります。
Re: include先でのDXライブラリの使用 ( No.5 )
名前:XM3 日時:2008/02/15 17:26

test2.cpp内でもDxLib.hをインクルードしたところ上手くいきました! あとTestLoadで値の受け渡しが無いのは書き忘れでした、、スミマセンw また何か分からなくなったらお聞きするかもしれませんが、その時はまたよろしくお願いします ありがとうございました!

Page: 1 |