ttp://okabi.blog92.fc2.com/blog-entry-523.html
上の関数を使ってfpsを安定化させようと思っています。初心者なのでよくわからいんですが
上の関数コードをヘッダーファイルに張り付けてインクルードして
メインプログラムに表示させるとエラーばかりでます。
アホか?って思うと思いますがなぜか分かりません。
特に
ヘッダーで定義した関数をメインファイルで書いてをコンパイルしたら、その関数は識別されていませんって
エラーをはくことがあります。関数の定義はどのようにするべきなのですか?
よろしくお願いします。
ヘッダーでの関数定義
Re:ヘッダーでの関数定義
原因となりそうなものを
・BCCでコンパイルするとき
ファイルを複数に分けてコンパイルするときは、
makefileを作らないと上手く行きません。
開発環境がVisualStudioであればこの操作を自動でやってくれます。
・ヘッダーファイルにソースを書いているため、インクルードの順番で認識されない
ヘッダーファイルにはプロトタイプ宣言を書くものです。
書き方が悪いと、自作ヘッダのインクルードする順番によって、
別のソースで自作ヘッダが呼び出される前に関数が呼び出されて、
認識されないことがあるかもしれません。
開発環境やソースがないと、原因を予測しか出来ません。
開発環境を提示し、ソースを添付したら(誰かが)対応してくれると思います。
・BCCでコンパイルするとき
ファイルを複数に分けてコンパイルするときは、
makefileを作らないと上手く行きません。
開発環境がVisualStudioであればこの操作を自動でやってくれます。
・ヘッダーファイルにソースを書いているため、インクルードの順番で認識されない
ヘッダーファイルにはプロトタイプ宣言を書くものです。
書き方が悪いと、自作ヘッダのインクルードする順番によって、
別のソースで自作ヘッダが呼び出される前に関数が呼び出されて、
認識されないことがあるかもしれません。
開発環境やソースがないと、原因を予測しか出来ません。
開発環境を提示し、ソースを添付したら(誰かが)対応してくれると思います。
Re:ヘッダーでの関数定義
ヘッダーにDXライブラリをインクルードしています。
上のソースファイルをヘッダーに張り付けて
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ;//ウィンドウモードに変更する関数
if( DxLib_Init() == -1 ) return -1;//初期化処理する関数
Fps(); //ヘッダーで定義した関数
WaitKey() ;//何か入力があるまで待つ関数
DxLib_End() ;//終了処理をする関数
return 0 ;
}
って簡単に言えば書いてるとおもいますけど、これじゃだめなんですか?
コンパイルはVC++EEです。
上のソースファイルをヘッダーに張り付けて
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ;//ウィンドウモードに変更する関数
if( DxLib_Init() == -1 ) return -1;//初期化処理する関数
Fps(); //ヘッダーで定義した関数
WaitKey() ;//何か入力があるまで待つ関数
DxLib_End() ;//終了処理をする関数
return 0 ;
}
って簡単に言えば書いてるとおもいますけど、これじゃだめなんですか?
コンパイルはVC++EEです。
Re:ヘッダーでの関数定義
#include "DxLib.h"
#include "function.h"//Fps()が入ったヘッダー
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ;//ウィンドウモードに変更する関数
if( DxLib_Init() == -1 ) return -1;//初期化処理する関数
Fps(); //ヘッダーで定義した関数
WaitKey() ;//何か入力があるまで待つ関数
DxLib_End() ;//終了処理をする関数
return 0 ;
}
です。すいません。
#include "function.h"//Fps()が入ったヘッダー
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ;//ウィンドウモードに変更する関数
if( DxLib_Init() == -1 ) return -1;//初期化処理する関数
Fps(); //ヘッダーで定義した関数
WaitKey() ;//何か入力があるまで待つ関数
DxLib_End() ;//終了処理をする関数
return 0 ;
}
です。すいません。
Re:ヘッダーでの関数定義
: error C3872: '0x3000': この文字を識別子で使用することはできません
: error C2065: ' double' : 定義されていない識別子です。
: error C2146: 構文エラー : ';' が、識別子 'FRAME' の前に必要です。
: error C2065: 'FRAME' : 定義されていない識別子です。
: error C3872: '0x3000': この文字を識別子で使用することはできません
: error C2065: ' static' : 定義されていない識別子です。
: error C2144: 構文エラー : 'double' は ';' によって先行されなければなりません。
: error C3872: '0x3000': この文字を識別子で使用することはできません
: error C2065: ' static' : 定義されていない識別子です。
: error C2144: 構文エラー : 'double' は ';' によって先行されなければなりません。
: error C2065: 'FRAME' : 定義されていない識別子です。
: error C3872: '0x3000': この文字を識別子で使用することはできません
: error C2065: ' static' : 定義されていない識別子です。
: error C2144: 構文エラー : 'double' は ';' によって先行されなければなりません。
定義されていないってはくんでヘッダーになにかインクルードするんじゃないかと
思います。それとも張り付けたのがいけないのか?
ちなみにヘッダーのインクルードはDXライブラリだけです。
: error C2065: ' double' : 定義されていない識別子です。
: error C2146: 構文エラー : ';' が、識別子 'FRAME' の前に必要です。
: error C2065: 'FRAME' : 定義されていない識別子です。
: error C3872: '0x3000': この文字を識別子で使用することはできません
: error C2065: ' static' : 定義されていない識別子です。
: error C2144: 構文エラー : 'double' は ';' によって先行されなければなりません。
: error C3872: '0x3000': この文字を識別子で使用することはできません
: error C2065: ' static' : 定義されていない識別子です。
: error C2144: 構文エラー : 'double' は ';' によって先行されなければなりません。
: error C2065: 'FRAME' : 定義されていない識別子です。
: error C3872: '0x3000': この文字を識別子で使用することはできません
: error C2065: ' static' : 定義されていない識別子です。
: error C2144: 構文エラー : 'double' は ';' によって先行されなければなりません。
定義されていないってはくんでヘッダーになにかインクルードするんじゃないかと
思います。それとも張り付けたのがいけないのか?
ちなみにヘッダーのインクルードはDXライブラリだけです。
Re:ヘッダーでの関数定義
ありがとうございます。動きました。
しかし、この方も他の方もそうですが
fps関数をいれるとなぜかカクカク動くようになります。
なぜこのようになるのでしょうか?
いれないとそれなりにスムーズなのですが・・・
もし、そうならないfps関数があったのならおしえてくれませんか?
よろしくお願いします。
しかし、この方も他の方もそうですが
fps関数をいれるとなぜかカクカク動くようになります。
なぜこのようになるのでしょうか?
いれないとそれなりにスムーズなのですが・・・
もし、そうならないfps関数があったのならおしえてくれませんか?
よろしくお願いします。