GetNowCount()によるメモリの問題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
nam

GetNowCount()によるメモリの問題

#1

投稿記事 by nam » 14年前

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]

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: GetNowCount()によるメモリの問題

#2

投稿記事 by h2so5 » 14年前

DxLib_Init()より前にGetNowCount()を呼ぶことはできません。

Waiterのインスタンスをグローバルで保持していると、
DxLib_Init()より前にコンストラクタが呼ばれてしまうので、コンストラクタ内でGetNowCount()を使わないで下さい。

nam

Re: GetNowCount()によるメモリの問題

#3

投稿記事 by nam » 14年前

ありがとうございます。
おかげで解決しました。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: GetNowCount()によるメモリの問題

#4

投稿記事 by Dixq (管理人) » 14年前

DxLib_Initより前に呼んでいい関数と後でなければならない関数が存在するので注意が必要ですね。
ウィンドウモードの設定や、ログ出力、タイトル設定などに関する関数は、DxLib_Initより前でも大丈夫です。
特に、ウィンドウ化に設定する関数はDxLib_Initより前にかかないと一度フルスクリーンになってからウィンドウ化してしまいます。

閉鎖

“C言語何でも質問掲示板” へ戻る