ページ 11

BGM

Posted: 2010年11月22日(月) 20:03
by ショウヘイ
PlaySound関数を使用しないでBGMを流す方法はありませんか?

VC++2010をコマンドプロントでコンパイルしているのですが
たとえばアイコンを作成するときに
【main.rc】というファイルを作成してその中に
icon ICON "main.ico"
と書き込み今度はコンパイラで
rc main.rc
でmain.resを作成します。
その後に
cl main.c main.res
とすればアイコンが表示されます。

こんな感じでBGMをリンクすることはできないのでしょうか?
PlaySound関数を使用するとローカルのどこかに音楽ファイルが必要ですよね?
もしゲームやらなにやらを配布するときに音楽ファイルまで一緒に配布することになってしまいます。
それが嫌なので音楽を直接リンクできないか?ということを質問しました。

Re:BGM

Posted: 2010年11月22日(月) 20:31
by シエル
ICONっていう文字を「RCDATA」ってやつにすれば、
どんなファイルでもリソースとして扱えたはずです。たぶん。
WAVEっていう文字にしてもいけたはずですが。

Re:BGM

Posted: 2010年11月22日(月) 20:43
by ショウヘイ
ありがとうございます。
リソースはできたのですが
リンクしても実行ファイルを実行しても音楽が再生されませんでした。

どうしてでしょうか?

Re:BGM

Posted: 2010年11月23日(火) 00:04
by ISLe
PlaySoundでリソースを読み込んで再生するようにしましたか?

PlaySound("BGM", GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC | SND_LOOP);
#リソース名がBGMの場合
とか
PlaySound(MAKEINTRESOURCE(BGM), GetModuleHandle(NULL), SND_RESOURCE | SND_ASYNC | SND_LOOP);
#リソースIDがBGMの場合
という感じ。