Platform SDK: DirectX

メソッドへの配列の受け渡し

[C++]

ここでは、Visual Basic でのアプリケーション開発について説明する。

[Visual Basic]

いくつかの DirectX メソッドでは、指定されていない型のデータが返される。たとえば、DirectSoundCaptureBuffer.ReadBuffer メソッドの buffer パラメータには Any 型のデータが返される。

一般には、そのようなメソッドからデータがバイト配列として返されると都合がよい。Visual Basic 配列では実データの前に別の情報が含まれているので、配列の名前をメソッドに渡すことは簡単ではない。そのため、次例のように配列の最初の要素を渡す必要がある。ここで、dsCaptureBufferDirectSoundCaptureBuffer オブジェクト、buffer は 0 ベースのバイト配列、nBytes は読み込まれたバイト数が格納される Long 型データである。

ReDim buffer(nBytes)
Call dsCaptureBuffer.ReadBuffer(0, nBytes, buffer(0), 0)

ただし、メソッドの中には実際にユーザーが入力したデータの配列をパラメータとして受け渡すものがあるので注意すること (たとえば、「DirectInputDevice.SetDataFormat」を参照すること)。この場合、次例のように配列の先頭の要素ではなく配列自体を受け渡す必要がある。ここで、formatArrayDIOBJECTDATAFORMAT 型の配列である。

MyDevice.SetDataFormat(diDataFormat, formatArray())