リソースの再生プログラムですが、音がなりません。
リソースの意味がわからないのですが、CドライブのWINDOWSフォルダにある、
クリック音、windows起動の音、終了時の音、などの事なんでしょうか?
音とがなりませんが、どこが間違っているか教えてください。
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
HINSTANCE hInst;
switch(uMsg){
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_LBUTTONDOWN: //再生
hInst=(HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE);
PlaySound(WinXP_Startup,hInst,SND_RESOURCE | SND_ASYNC |
SND_LOOP);
return 0;
case WM_RBUTTONDOWN: //停止
PlaySound(NULL,NULL,0);
return 0;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
> リソースの意味がわからないのですが、CドライブのWINDOWSフォルダにある、
> クリック音、windows起動の音、終了時の音、などの事なんでしょうか?
違います。
ここでいう「リソース」は、実行ファイル内にリンクされるwavデータ等をさします。
# メニューやアイコンなどの「リソース」と同様
このため、SND_RESOURCEを指定してWinXP_Startupと書くと、
その *実行ファイル自体* に *WinXP_Startupという識別子をもつwavデータ* がリソースと
してリンクされていない限り、データが見つからないといわれるでしょう。
# APIの呼び出しは戻り値をチェックする習慣をつけてください。PlaySoundが失敗してると思いま
す。
私には「號さんが『どんな風に何を再生したいか』」が分かりませんので「正解」は不明ですが、
ファイル指定したいならフラグが違いますし、システム定義サウンドを指定したい場合も違う、
ということは分かります。指定を変更するなり、リソースを追加するなりしてください。
さっそくのご回答ありがとうございます!
リソース意味を間違えていたようですね。
>実行ファイル内にリンクされるwavデータ等をさします。
戻り値のチェックをするといいようですね。
いろいろ貴重なご意見ありがとうございました!