by 新海 » 2006年8月23日(水) 21:10
http://www.activebasic.com/forum/viewtopic.php?t=1098
上記リンク先を参考に、リソースエディタを使用しないで、WAVEファイルを
リソースとして追加し、再生しようと試みましたがWAVEファイルを再生することが出来ません。
コードは以下の通りですが、そもそもこれは可能なことでしょうか。
WaveTest.rc
コード: 全て選択
Wave01 RCData DISCARDABLE "Test.wav"
WaveTest.abp
コード: 全て選択
Const RCData = 10
Const Wave01 = 1
#include <api_mmsys.sbp>
#resource "WaveTest.rc"
Declare Function FindResource Lib "kernel32" Alias "FindResourceA" (hModule As HANDLE,lpName As BytePtr,lpType As BytePtr) As HANDLE
Declare Function LoadResource Lib "kernel32" (hModule As HANDLE,hResInfo As HANDLE) As HGLOBAL
Declare Function LockResource Lib "kernel32" (hResData As HGLOBAL) As VoidPtr
Dim hRes As HANDLE
Dim hGlobal As HGLOBAL
Dim pRes As VoidPtr
'リソースを検索
hRes=FindResource(0,Wave01,RCData)
'リソースを読み込み
hGlobal=LoadResource(0,hRes)
'リソースのアドレスを取得
pRes=LockResource(hGlobal)
PlaySound(pRes,GetModuleHandle(0),SND_RESOURCE)
MsgBox 0,"End"
End
http://www.activebasic.com/forum/viewtopic.php?t=1098
上記リンク先を参考に、リソースエディタを使用しないで、WAVEファイルを
リソースとして追加し、再生しようと試みましたがWAVEファイルを再生することが出来ません。
コードは以下の通りですが、そもそもこれは可能なことでしょうか。
WaveTest.rc
[code]Wave01 RCData DISCARDABLE "Test.wav"[/code]
WaveTest.abp
[code]Const RCData = 10
Const Wave01 = 1
#include <api_mmsys.sbp>
#resource "WaveTest.rc"
Declare Function FindResource Lib "kernel32" Alias "FindResourceA" (hModule As HANDLE,lpName As BytePtr,lpType As BytePtr) As HANDLE
Declare Function LoadResource Lib "kernel32" (hModule As HANDLE,hResInfo As HANDLE) As HGLOBAL
Declare Function LockResource Lib "kernel32" (hResData As HGLOBAL) As VoidPtr
Dim hRes As HANDLE
Dim hGlobal As HGLOBAL
Dim pRes As VoidPtr
'リソースを検索
hRes=FindResource(0,Wave01,RCData)
'リソースを読み込み
hGlobal=LoadResource(0,hRes)
'リソースのアドレスを取得
pRes=LockResource(hGlobal)
PlaySound(pRes,GetModuleHandle(0),SND_RESOURCE)
MsgBox 0,"End"
End[/code]