ver 3.05のDXライブラリでGetNowCount()を実行すると
0x00000000 でハンドルされていない例外が発生しました
と言うダイアログが出て、デバッグが途中で止まりました。
↓がそのコードです。(クラスでフレームレートを管理しようとしています)
●waiter.h
#ifndef WAITER_H
#define WAITER_H
class Waiter{
public:
Waiter();
void setFPS( int f );
void wait();
private:
int fps;
int time;
};
inline void Waiter::setFPS( int f ){
fps = f;
}
#endif
●waiter.cpp
#include "waiter.h"
Waiter::Waiter(){
fps = 60;
time = 0;
time = GetNowCount();//ここで止まる
}
void Waiter::wait(){
int lastTime = GetNowCount();
if( lastTime - time < 1000/fps )
WaitTimer( 1000/fps-(lastTime-time) );
time = GetNowCount();
}[tab=30]
GetNowCount()によるメモリの問題
Re: GetNowCount()によるメモリの問題
DxLib_Init()より前にGetNowCount()を呼ぶことはできません。
Waiterのインスタンスをグローバルで保持していると、
DxLib_Init()より前にコンストラクタが呼ばれてしまうので、コンストラクタ内でGetNowCount()を使わないで下さい。
Waiterのインスタンスをグローバルで保持していると、
DxLib_Init()より前にコンストラクタが呼ばれてしまうので、コンストラクタ内でGetNowCount()を使わないで下さい。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: GetNowCount()によるメモリの問題
DxLib_Initより前に呼んでいい関数と後でなければならない関数が存在するので注意が必要ですね。
ウィンドウモードの設定や、ログ出力、タイトル設定などに関する関数は、DxLib_Initより前でも大丈夫です。
特に、ウィンドウ化に設定する関数はDxLib_Initより前にかかないと一度フルスクリーンになってからウィンドウ化してしまいます。
ウィンドウモードの設定や、ログ出力、タイトル設定などに関する関数は、DxLib_Initより前でも大丈夫です。
特に、ウィンドウ化に設定する関数はDxLib_Initより前にかかないと一度フルスクリーンになってからウィンドウ化してしまいます。