Re: PlayMusic が正常に動作しない。 ( No.1 ) |
- 名前:管理人 日時:2009/10/18 18:45
なんだか私の環境では変な状況になっています
DxLib_Init の前に SelectMidiMode( DX_MIDIMODE_DM ) ; と記述して DirectMusic 経由で
再生しないとMIDIファイルを演奏できなくなってしまいました
ただ、演奏されない( 何も聞こえない )だけで SelectMidiMode( DX_MIDIMODE_DM ) ; と
記述しない場合も戻り値は 0 です
Masaoさんの状況は私の状況と違うみたいですが、Log.txt には何かそれらしき出力はされていないでしょうか?
|
Re: PlayMusic が正常に動作しない。 ( No.2 ) |
- 名前:Masao 日時:2009/10/18 23:53
ミュージックファイル material/das.mid の読み込みに失敗しました in LoadMusicMem
このような1行がありましたが、それ以外不自然なところは見当たりませんでした。
とはいえ、私が見逃しているだけの可能性もありますので、したの方に貼り付けますね。
それから、メモリリークの件でライブラリを更新したところ、MIDIを開く処理でひっかかっているのか、起動時間が役10倍ほど長くなっておりました。
(時間にして20秒ぐらい)
ブレイクポイントいれて調査したところ
DxLib_Init()
この初期化関数内で長時間スタック(滞在?)しているようです。
出力ウィンドウでは、この時ちょうど
'test.exe': 'C:\Windows\SysWOW64\midimap.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\dmsynth.dll' を読み込みました
出力ポート Device0:Microsoft MIDI Mapper [Emulated]
出力ポート Device1:Microsoft GS Wavetable Synth [Emulated]
出力ポート Device2:Microsoft Synthesizer
'test.exe': 'C:\Windows\SysWOW64\dsdmo.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\msdmo.dll' を読み込みましたを読み込みました
これらの行を表示している最中でした。
0:システムの情報を出力します
0: DXライブラリ Ver3.00e
0: OS WindowsVista ( Build 6001 Service Pack 1 )
100: CPU動作速度:大体1.79GHz
101: MMX命令を使用します
103: SSE命令が使用可能です
107: SSE2命令が使用可能です
110: CPUベンダ:GenuineIntel
116: CPU名:Intel(R) Core(TM)2 Duo CPU P7350 @ 2.00GHz
119:COMの初期化... 成功しました
124:メモリ総量:4096.00MB 空きメモリ領域:4096.00MB
126:タイマーの精度を検査します
128:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
129: パフォーマンスカウンターを使用します タイマー分解能 : 14318.180000 KHz
133: ソフトの二重起動検査... 二重起動はされていませんでした
172:ウインドウクラスを登録します... 登録に成功しました
174:ウインドウモード起動用のウインドウを作成します
178:ウインドウの作成に成功しました
234:IMEを無効にしました
452:ウインドウスタイルをウインドウモード用に変更します... 完了
459:DirectInput関係初期化処理
461: DirectInput7 の取得中... 成功
596: 引き続き初期化処理... 初期化成功
605: ジョイパッドの初期化...
633: ジョイパッドの初期化は正常に終了しました
635: マウスデバイスの初期化... 初期化成功
640: キーボードデバイスの初期化... 初期化成功
647:DirectInput 関連の初期化は正常に終了しました
648:DirectSound8 の初期化を行います
19589:出力ポート Device0:Microsoft MIDI Mapper [Emulated]
19590:出力ポート Device1:Microsoft GS Wavetable Synth [Emulated]
19591:出力ポート Device2:Microsoft Synthesizer
39052: DirectSound デバイスを列挙します
39057: モジュール名: ドライバ記述:Primary Sound Driver
39059: モジュール名:{0.0.0.00000000}.{e9c88b09-16d9-4820-bba3-a1e1d7df4106} ドライバ記述:Speakers (Realtek High Definition Audio)
39061: モジュール名:{0.0.0.00000000}.{56b9d450-745b-4b2a-9074-8cd214f6a3ff} ドライバ記述:Realtek Digital Output (Realtek High Definition Audio)
39063: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz
39065: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB
39067: 利用可能サンプリング精度
39068: プライマリ 16bit = OK 8bit = OK
39071: セカンダリ 16bit = OK 8bit = OK
39073: 利用可能チャンネル
39075: プライマリ MONO = OK STEREO = OK
39078: セカンダリ MONO = OK STEREO = OK
39080:DirectSound の初期化は正常に終了しました
39138:DirectDraw オブジェクトの取得を行います.... 成功
39168:引き続き初期化処理... 初期化に成功しました
39365:IDirect3D9 オブジェクトを取得します.... 成功
39463:IDirect3DDevice9 オブジェクトを取得します.... ハードウエア頂点演算を使用します
39676:成功
39678:画面のフォーマットは D3DFMT_X8R8G8B8 です
39679:Zバッファのフォーマットは D3DFMT_D16 です
39681:16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
39682:32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
39684:アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
39685:アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
39688:アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
39689:アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
39693:DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
39695:DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
39698:DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
39700:DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
39701:DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
39702:描画用 16bit カラーフォーマットは D_D3DFMT_R5G5B5 です
39704:描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
39705:描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
39707:Zバッファを作成します.... 成功
39748:プログラマブルシェーダーを使用します
39788:フォントの初期化を行います
39797:フォントの初期化は正常に終了しました
39799:文字コードバッファの初期化を行います... 完了しました
40334:ミュージックファイル material/das.mid の読み込みに失敗しました in LoadMusicMem
48551:フォントの初期化を行います
48556:フォントの初期化は正常に終了しました
48647:DirectInput 関連の終了処理... 完了
48723:DirectSound の終了処理は正常に終了しました
48740:ウインドウを閉じようとしています
48764:ウインドウが破棄されようとしています
48765:ソフトを終了する準備が整いました
48768:
48770:Alloc memory dump
48772: Total size:0(0.000kb) Alloc num:0
48776:
以下は出力ウィンドウ側
'test.exe': 'C:\Users\Masao\Documents\C language\gaikotu shooter\Debug\test.exe' を読み込みました。シンボルが読み込まれました。
'test.exe': 'C:\Windows\SysWOW64\ntdll.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\kernel32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\user32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\gdi32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\advapi32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\rpcrt4.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\secur32.dll' を読み込みました
'test.exe': 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.6001.18000_none_886786f450a74a05\comctl32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\winmm.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\msvcrt.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\ole32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\oleaut32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\oleacc.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\wsock32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\ws2_32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\nsi.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\imm32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\msctf.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\msacm32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\shell32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\shlwapi.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\shimeng.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\apphelp.dll' を読み込みました
'test.exe': 'C:\Windows\AppPatch\AcLayers.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\userenv.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\winspool.drv' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\mpr.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\lpk.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\usp10.dll' を読み込みました
'test.exe': 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\comctl32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\uxtheme.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\clbcatq.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPTIP.DLL' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IMJP10K.DLL' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMETIP.DLL' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\imecfm.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPAPI.DLL' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\version.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMJKAPI.DLL' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\imecfm.dll' をアンロード
'test.exe': 'C:\Windows\SysWOW64\IMJP10K.DLL' をアンロード
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMJKAPI.DLL' をアンロード
'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPAPI.DLL' をアンロード
'test.exe': 'C:\Windows\SysWOW64\version.dll' をアンロード
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMETIP.DLL' をアンロード
'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPTIP.DLL' をアンロード
システムの情報を出力します
DXライブラリ Ver3.00e
OS WindowsVista ( Build 6001 Service Pack 1 )
CPU動作速度:大体1.79GHz
MMX命令を使用します
SSE命令が使用可能です
SSE2命令が使用可能です
CPUベンダ:GenuineIntel
CPU名:Intel(R) Core(TM)2 Duo CPU P7350 @ 2.00GHz
COMの初期化... 成功しました
メモリ総量:4096.00MB 空きメモリ領域:4096.00MB
4096.00MB
タイマーの精度を検査します
精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
パフォーマンスカウンターを使用します タイマー分解能 : 14318.180000 KHz
ソフトの二重起動検査... 二重起動はされていませんでした
ウインドウクラスを登録します... 登録に成功しました
ウインドウモード起動用のウインドウを作成します
ウインドウの作成に成功しました
IMEを無効にしました
'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPTIP.DLL' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IMJP10K.DLL' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMETIP.DLL' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\imecfm.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPAPI.DLL' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\version.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\IMJKAPI.DLL' を読み込みました
ウインドウスタイルをウインドウモード用に変更します... 完了
DirectInput関係初期化処理
DirectInput7 の取得中... 'test.exe': 'C:\Windows\SysWOW64\dinput.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\hid.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\setupapi.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\wintrust.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\crypt32.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\msasn1.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\imagehlp.dll' を読み込みました
成功
引き続き初期化処理... 初期化成功
ジョイパッドの初期化...
ジョイパッドの初期化は正常に終了しました
マウスデバイスの初期化... 初期化成功
キーボードデバイスの初期化... 初期化成功
DirectInput 関連の初期化は正常に終了しました
DirectSound8 の初期化を行います
'test.exe': 'C:\Windows\SysWOW64\dmloader.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\dmusic.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\ksuser.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\dsound.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\powrprof.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\dmime.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\wdmaud.drv' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\MMDevAPI.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\avrt.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\AudioSes.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\AudioEng.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\psapi.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\msacm32.drv' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\midimap.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\dmsynth.dll' を読み込みました
出力ポート Device0:Microsoft MIDI Mapper [Emulated]
出力ポート Device1:Microsoft GS Wavetable Synth [Emulated]
出力ポート Device2:Microsoft Synthesizer
'test.exe': 'C:\Windows\SysWOW64\dsdmo.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\msdmo.dll' を読み込みました
DirectSound デバイスを列挙します
モジュール名: ドライバ記述:Primary Sound Driver
モジュール名:{0.0.0.00000000}.{e9c88b09-16d9-4820-bba3-a1e1d7df4106} ドライバ記述:Speakers (Realtek High Definition Audio)
モジュール名:{0.0.0.00000000}.{56b9d450-745b-4b2a-9074-8cd214f6a3ff} ドライバ記述:Realtek Digital Output (Realtek High Definition Audio)
最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz
総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB
利用可能サンプリング精度
プライマリ 16bit = OK 8bit = OK
セカンダリ 16bit = OK 8bit = OK
利用可能チャンネル
プライマリ MONO = OK STEREO = OK
セカンダリ MONO = OK STEREO = OK
DirectSound の初期化は正常に終了しました
'test.exe': 'C:\Windows\SysWOW64\d3d9.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\d3d8thk.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\dwmapi.dll' を読み込みました
DirectDraw オブジェクトの取得を行います.... 'test.exe': 'C:\Windows\SysWOW64\ddraw.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\dciman32.dll' を読み込みました
成功
引き続き初期化処理... 'test.exe': 'C:\Windows\SysWOW64\atiumdag.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\atiumdva.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' をアンロード
初期化に成功しました
IDirect3D9 オブジェクトを取得します.... 'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' をアンロード
成功
IDirect3DDevice9 オブジェクトを取得します.... 'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' を読み込みました
'test.exe': 'C:\Windows\SysWOW64\atipdlxx.dll' をアンロード
ハードウエア頂点演算を使用します
成功
画面のフォーマットは D3DFMT_X8R8G8B8 です
Zバッファのフォーマットは D3DFMT_D16 です
16bit カラーフォーマットは D_D3DFMT_R5G6B5 です
32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
アルファ付き 16bit カラーフォーマットは D_D3DFMT_A4R4G4B4 です
アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
アルファテスト用 16bit カラーフォーマットは D_D3DFMT_A1R5G5B5 です
アルファテスト用 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
DXT1テクスチャフォーマットは D_D3DFMT_DXT1 です
DXT2テクスチャフォーマットは D_D3DFMT_DXT2 です
DXT3テクスチャフォーマットは D_D3DFMT_DXT3 です
DXT4テクスチャフォーマットは D_D3DFMT_DXT4 です
DXT5テクスチャフォーマットは D_D3DFMT_DXT5 です
描画用 16bit カラーフォーマットは D_D3DFMT_R5G5B5 です
描画用 32bit カラーフォーマットは D_D3DFMT_X8R8G8B8 です
描画用アルファ付き 32bit カラーフォーマットは D_D3DFMT_A8R8G8B8 です
Zバッファを作成します.... 成功
プログラマブルシェーダーを使用します
フォントの初期化を行います
フォントの初期化は正常に終了しました
文字コードバッファの初期化を行います... 完了しました
ミュージックファイル material/das.mid の読み込みに失敗しました in LoadMusicMem
フォントの初期化を行います
フォントの初期化は正常に終了しました
スレッド 'Win32 スレッド' (0x13c0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0xfc0) はコード 0 (0x0) で終了しました。
'test.exe': 'C:\Windows\SysWOW64\atiumdva.dll' をアンロード
'test.exe': 'C:\Windows\SysWOW64\atiumdag.dll' をアンロード
'test.exe': 'C:\Windows\SysWOW64\d3d9.dll' をアンロード
'test.exe': 'C:\Windows\SysWOW64\d3d8thk.dll' をアンロード
DirectInput 関連の終了処理... 完了
スレッド 'Win32 スレッド' (0xee0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0xcf4) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x7f0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x2a8) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x1234) はコード 0 (0x0) で終了しました。
DirectSound の終了処理は正常に終了しました
ウインドウを閉じようとしています
'test.exe': 'C:\Windows\SysWOW64\IME\SHARED\imecfm.dll' をアンロード
'test.exe': 'C:\Windows\SysWOW64\IMJP10K.DLL' をアンロード
ウインドウが破棄されようとしています
ソフトを終了する準備が整いました
Alloc memory dump
Total size:0(0.000kb) Alloc num:0
スレッド 'Win32 スレッド' (0x104c) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0xfb0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0xf90) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0x4e0) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0xa8) はコード 0 (0x0) で終了しました。
スレッド 'Win32 スレッド' (0xbb0) はコード 0 (0x0) で終了しました。
プログラム '[4976] test.exe: ネイティブ' はコード 0 (0x0) で終了しました。
|
Re: PlayMusic が正常に動作しない。 ( No.3 ) |
- 名前:管理人 日時:2009/10/24 14:10
> ミュージックファイル material/das.mid の読み込みに失敗しました in LoadMusicMem
こちらの出力は単純にファイルオープンに失敗した際に出力されるメッセージなのですが、
サウンド周りは 3.00c から 3.00d に掛けて何も変更していないので、原因の検討が付きません
一応私のVista環境で正常に再生できることを確認したプログラムをアップしてみましたので、
よろしければ Masaoさんの環境でも正常に再生されるか試してみていただけないでしょうか?
http://homepage2.nifty.com/natupaji/temp/PlayMusicTest.exe
中に PlayMusicTest.exe がありますので、実行してみてください、test.mid が再生されるはずです
|
Re: PlayMusic が正常に動作しない。 ( No.4 ) |
- 名前:Masao 日時:2009/10/25 11:47
再生できました。
すいません、原因がなんだかよく分からないのですが、もう一度新しく3.00dをDLして、ディレクトリを指定してリビルドしてみたら、成功しました。
お騒がせしました。
|