以下のプログラムで起こりました
環境はWindow7です
#include <DxLib.h>
int snd;
// sound1.wavをロードするスレッド
DWORD WINAPI LoadSound1(void *param)
{
snd = LoadSoundMem("桜華・白章-Ouka.Hakushou- oukasiro.mp3");
return 0;
}
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
ChangeWindowMode(TRUE); // ウィンドウモードで起動
SetMultiThreadFlag(TRUE);
SetAlwaysRunFlag(TRUE);
if (DxLib_Init() != 0) {
return -1;
}
SetDrawScreen(DX_SCREEN_BACK);
const int white = GetColor(255, 255, 255);
int grHandle = LoadGraph(_T("w.png")), x = 0, s, e, f=0, a=0, g;
DWORD thread_id; // スレッドID
DWORD exit_code; // 終了コード
HANDLE thread_handle; // スレッドハンドル
// スレッド作成
thread_handle = CreateThread(0, 0, LoadSound1, 0, 0, &thread_id);
s = GetNowCount();
while (ProcessMessage() == 0 && ClearDrawScreen() == 0) {
if (CheckHitKey(KEY_INPUT_ESCAPE)) {
break;
}
// スレッドの終了コード取得
GetExitCodeThread(thread_handle, &exit_code);
if (exit_code == STILL_ACTIVE) {
DrawString(0, 0, "ロード中..", white);
DrawExtendGraph(0, 30, x, 50, grHandle, TRUE);
x++;
if (CheckHitKey(KEY_INPUT_UP)) {
ChangeWindowMode(FALSE);
SetGraphMode(1280,720,32);
g=LoadGraph(_T("imgbb4b4039a68d625.png"));
}
} else if (snd == -1) {
DrawString(0, 0, "ロード失敗", white);
} else if (!CheckSoundMem(snd)) {//CheckSoundMem(snd)
if(FALSE == f){
e = GetNowCount();
f = TRUE;
}
DrawFormatString(0, 0, white, "ロード成功:スペースキー