VB.NET質問スレ(Part35)
■ このスレッドは過去ログ倉庫に格納されています
0088デフォルトの名無しさん
2010/10/01(金) 13:21:13●VB.NETにて、配列の先頭アドレスを数値に変換するにはどうすればよいのでしょうか?
やりたいことは、waveOutPrepareHeader()に渡すWAVEHDR構造体のlpDataメンバに
波形バッファの先頭アドレスを代入したいのです。
例)
<StructLayout(LayoutKind.Sequential)> Structure WAVEHDR
Dim lpData As Int32
Dim dwBufferLength As Int32
Dim dwBytesRecorded As Int32
Dim dwUser As Int32
Dim dwFlags As Int32
Dim dwLoops As Int32
Dim lpNext As Int32
Dim reserved As Int32
End Structure
Declare Function waveOutPrepareHeader Lib "winmm.dll" Alias "waveOutPrepareHeader" (ByVal hWaveOut As Int32, ByRef lpWaveOutHdr As WAVEHDR, ByVal uSize As UInt32) As Int32
Dim waveBuffer As Byte(BUFFER_SIZE)
Dim waveHdr As WAVEHDR
waveHdr.lpData = waveBufferの先頭アドレス
waveHdr.他のメンバ = 適当に設定
waveOutPrepareHeader(..., waveHdr, ...)
C言語風に書けるなら waveHdr.lpData = (unsigned long)waveBuffer; とやりたいところですが・・・。
よろしくお願いいたします。
■ このスレッドは過去ログ倉庫に格納されています