エラーが出るのですが
Posted: 2008年12月29日(月) 10:13
昨日教えてもらったようにして簡単な鍵盤を作ったのですが。DxLib.exe の実行中に途中から 0x00558bb8 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00000000 に書き込み中にアクセス違反が発生しましたって出てきて動かなくなるのですが。下のプログラムなんですが。どうすればいいのでしょうか。プログラムは画像を使わないと何にも起きないのですが。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode( TRUE ) ; // ウィンドウモード
if( DxLib_Init() == -1 ) return -1; // 初期化
char KeyBuf[ 256 ] ;
//音符
int Sound ;
Sound = LoadSoundMem( "do.ogg" ); //wavファイルを読み込み、ハンドルをint型変数へ格納
int Sound1 ;
Sound1 = LoadSoundMem( "re.ogg" );
int Sound2 ;
Sound2 = LoadSoundMem( "mi.ogg" );
int Sound3 ;
Sound3 = LoadSoundMem( "fa.ogg" );
int Sound4 ;
Sound4 = LoadSoundMem( "so.ogg" );
int Sound5 ;
Sound5 = LoadSoundMem( "ra.ogg" );
int Sound6 ;
Sound6 = LoadSoundMem( "si.ogg" );
int Sound7 ;
Sound7 = LoadSoundMem( "do2.ogg" );
while( 1 ){
GetHitKeyStateAll(KeyBuf ) ; // すべてのキーの状態を得る
if(KeyBuf[KEY_INPUT_A]==1) {
if(CheckSoundMem(Sound)==0) //現在音が再生されていなければ
PlaySoundMem(Sound,DX_PLAYTYPE_BACK); //音を再生する
}
if(KeyBuf[KEY_INPUT_B]==1) {
if(CheckSoundMem(Sound1)==0) //現在音が再生されていなければ
PlaySoundMem(Sound1,DX_PLAYTYPE_BACK); //音を再生する
}
if(KeyBuf[KEY_INPUT_C]==1) {
if(CheckSoundMem(Sound2)==0) //現在音が再生されていなければ
PlaySoundMem(Sound2,DX_PLAYTYPE_BACK); //音を再生する
}
if(KeyBuf[KEY_INPUT_D]==1) {
if(CheckSoundMem(Sound3)==0) //現在音が再生されていなければ
PlaySoundMem(Sound3,DX_PLAYTYPE_BACK); //音を再生する
}
if(KeyBuf[KEY_INPUT_E]==1) {
if(CheckSoundMem(Sound4)==0) //現在音が再生されていなければ
PlaySoundMem(Sound4,DX_PLAYTYPE_BACK); //音を再生する
}
if(KeyBuf[KEY_INPUT_F]==1) {
if(CheckSoundMem(Sound5)==0) //現在音が再生されていなければ
PlaySoundMem(Sound5,DX_PLAYTYPE_BACK); //音を再生する
}
if(KeyBuf[KEY_INPUT_G]==1) {
if(CheckSoundMem(Sound6)==0) //現在音が再生されていなければ
PlaySoundMem(Sound6,DX_PLAYTYPE_BACK); //音を再生する
}
if(KeyBuf[KEY_INPUT_H]==1) {
if(CheckSoundMem(Sound7)==0) //現在音が再生されていなければ
PlaySoundMem(Sound7,DX_PLAYTYPE_BACK); //音を再生する
}
//音符
int image; //ハンドルを受け取るためのint型変数を宣言
image = LoadGraph( "background0.png" ) ; //char.pngのハンドルを代入
DrawGraph( 0 , 0 , image , FALSE ) ; //画像を表示
if(KeyBuf[KEY_INPUT_ESCAPE]==1)
break ;
if( ProcessMessage() == -1 ) break ;//エラーが起きたら終了
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}