ウインドウズでゲームを作ってみたいと思い立ち、1ヶ月ほど細々とプログラミングしている者です。環境はXPSP2、VC++6.0です。
このサイトの方たちには色々教えて頂いております。
今、BGMとしてMID(MIDI)ファイルを使いたいと思って色々やっているのですが、音を出すことが出来ません。
VCで作成したプロジェクトフォルダに、test.midというファイルを入れてあり、test.mid単独では音は鳴ります。
アプリケーションのクライアント領域上で右ボタンを押すと音が鳴ると思っていたのですが、メッセージボックスしか出ませんでした。
#include "windows.h"
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
switch(uMsg)
{
case WM_CREATE:
mciSendString("open test.mid type sequencer alias music",NULL,0,NULL);
break;
case WM_DESTROY:
mciSendString("stop music",NULL,0,NULL);
mciSendString("close music",NULL,0,NULL);
PostQuitMessage(0);
return 0;
case WM_KEYUP:
if(wParam==VK_RIGHT)
{
MessageBox(NULL,TEXT("MUSIC"),NULL,MB_OK);
mciSendString("play music", NULL, 0, NULL);
}
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
WINMAINは別段変わったことはやっておりません。ご存知の方が居ましたら宜しくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
midファイルが「カレントパス」内に入っていないのが原因ではないでしょうか。
ファイルをパス無しで指定した場合、カレントパスが自動的に使われますが、このカレントパスがクセモノで、必ずしも実行ファイルと同じパスであるとは限らないのです。Visual Studioからデバッグモードで実行したり、ショートカットから実行したりすると、カレントパスも変化します。とりあえず「test.mid」の部分をフルパスにしてトライしてみてください。(例えば「C:\music\test.mid」など)これならカレントパスに影響されず、確実にmidファイルを指定できるので。
これでも音が鳴らなければ別の原因ということになりますが、少なくとも可能性の一つを潰せるので…
この回答への補足
情報有難う御座いました。
保存場所を変えたり色々やってみたのですが、フルパスでもうまくいかない様です。
以前回答下さった方が、私が書いたソースをコピペしたら音が鳴ったとのことなので、環境に依存しているとは思うのですが…。
うーん、VCは使う人を選ぶのか?
No.2
- 回答日時:
試しにコンパイルしてみましたがメッセージボックスの「OK」を押して消した後にちゃんと音が鳴りました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
パスワード保護されたExcelファ...
-
ExcelVBAの使い方 ¥の使い方...
-
C#でのProcess.Startと変数path
-
xcopyコマンドの進行状況を表示...
-
Eclipse
-
AccessからExcel最小化
-
実行ファイルのパスを取得したい
-
エクセルのファイルオープン時...
-
SaveAsの保存先について
-
Cの関数で自分自身のパス取得
-
【VBA】ExcelマクロでCSVファイ...
-
エクセルの二重起動をやめたい
-
MultiValueMapの使い方を教えて...
-
header(Location)で相対URL...
-
A列に記載されているフォルダ...
-
【VB.NET】App.configにファイ...
-
初心者powershellのPS1ファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
初心者powershellのPS1ファイル...
-
【VB.NET】App.configにファイ...
-
【VBA】ExcelマクロでCSVファイ...
-
エクセルのマクロで特定フォル...
-
VBA★PDFをPDFアプリで印刷し...
-
パスワード保護されたExcelファ...
-
SaveAsの保存先について
-
ExcelVBAの使い方 ¥の使い方...
-
Windows PowerShellでscoopコマ...
-
開いているファイルを削除し、...
-
VBS パスに変数を入れたい
-
C#でのProcess.Startと変数path
-
コマンドプロンプトのコピー関...
-
EXCEL(VBA)で指定フォルダ内の...
-
実行ファイルのパスを取得したい
おすすめ情報