終了するとエラー

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

終了するとエラー

#1

投稿記事 by situmon » 16年前

なぜか終了すると(ゲームを終わると)
Shooting Game.exe の 0x00d547b7 で初回の例外が発生しました: 0xC0000005: 場所 0xfeeeff4e を読み込み中にアクセス違反が発生しました。
Shooting Game.exe の 0x00d547b7 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0xfeeeff4e を読み込み中にアクセス違反が発生しました。
と出てきて正常に終われません。
どうしてなのでしょうか?
お願いします。

MNS

Re:終了するとエラー

#2

投稿記事 by MNS » 16年前

情報が少なすぎますが、
おそらく解放処理などで、不正なポインタなどにでもアクセスしたのではないでしょうか?

situmon

Re:終了するとエラー

#3

投稿記事 by situmon » 16年前

MNSさん回答ありがとうございます。
コードは
#include "DxLib.h"
#include "Global.h"

extern int GetHitKeyStateAll_2();
extern int CheckStateKey(unsigned char Handle);
extern void GetHitPadStateAll();
extern int CheckStatePad(unsigned int Handle);

void message_box(){
        int flag;
        flag=MessageBox(
                NULL ,
                TEXT("フルスクリーンモードで起動しますか?") ,
                TEXT("スクリーン設定") , 
                MB_YESNO | MB_ICONQUESTION );
        if(flag==IDNO)
                ChangeWindowMode( TRUE );
}
int ProcessLoop(){
	if(ProcessMessage()!=0)return -1;
	if(ClearDrawScreen()!=0)return -1;
	GetHitKeyStateAll_2();
	GetHitPadStateAll();
	return 0;
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
 
//初期化
extern void Bgm_se_load();
extern void load();
extern void initial();
//省略

//o→
	extern void FpsTimeFanction();
	int RefreshTime=0;
//o←

SetOutApplicationLogValidFlag( FALSE ); 

message_box();

if( DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK ) !=0) return -1;

//初期化処理
save_data_load();
load();
Bgm_se_load();

while(ProcessLoop()==0){

	switch(main_flag){

case 99://タイトル用

initial();

main_flag=0;

break;

case 0://タイトル用

Title_Draw();

Music_Play();

t_count++;

break;

case 1://レベル選択

Choose_level_Draw();

t_count++;

break;
//省略
	}

FpsTimeFanction();//old
ScreenFlip();//裏画面を表画面に反映
while(GetNowCount() - RefreshTime < 17);//old
}
 
        DxLib_End() ;           // DXライブラリ使用の終了処理
        return 0 ;              // ソフトの終了
}
具体的な解決法なんでしょう。

situmon

Re:終了するとエラー

#4

投稿記事 by situmon » 16年前

どうやら、ゲームパッドをつないでいるときだけ起こるようです...

ねこ

Re:終了するとエラー

#5

投稿記事 by ねこ » 16年前

とりあえずどこで落ちるのかトレースしてみてはどうでしょうか?
DxLib_End内だとどうしようもないですし。

Justy

Re:終了するとエラー

#6

投稿記事 by Justy » 16年前


>どうやら、ゲームパッドをつないでいるときだけ起こるようです

 似たような症例は聞いたことがありますが、状況を整理するために
何の関数を呼び出した後落ちているのか、0x00d547b7がどのモジュールが
管理するメモリなのか調べてみて下さい。

 デバッガでステップ実行したり、モジュールウインドウで該当するアドレスを
調べれば何か判るはずです。


 その結果、DxLib_End関数内で、且つジョイパッドが使用しているモジュールの中で
落ちているとなると

C言語何でも質問掲示板
ttp://www.play21.jp/board/formz.cgi?action=res&resno=26114&page=&lognum=82&id=dixq&rln=26163

と同様の現象であることが疑われます。

 これらは結局真の原因は判っていないので、ジョイパッドを抜くしか
現状回避策がありません。
 
 その場合、本家で聞いた方がいいかと思います。

situmon

Re:終了するとエラー

#7

投稿記事 by situmon » 16年前

よくしらべていませんが、エレコムの結構昔?というより、生産販売終了されたのつかっているので、相性があわないのかもしれません。若干違うかもしれませんが、URL先の質問者と同じ症状です。
しょうがないのですね。
バグであったら(こちらのプログラムによる)よくないな、と思いましたので・・・
ですが多分抜けばいいですね。
みなさまどうもありがとうございました。

閉鎖

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