アンマネージ ポインターがあり、指定されたバイト数をその場所から Byte 配列に転送したい場合、これを行う最善の方法は何ですか?
つまり、Marshal.PtrToString* メソッドと同等のものですが、宛先は Byte() です。
ありがとう
アンマネージ ポインターがあり、指定されたバイト数をその場所から Byte 配列に転送したい場合、これを行う最善の方法は何ですか?
つまり、Marshal.PtrToString* メソッドと同等のものですが、宛先は Byte() です。
ありがとう
Marshal.Copy
ポインターとの間でバイト配列をコピーするためのオーバーロードがあります。
VB6Byte()
スタイルの COM との相互運用性はありますか? OLE-COM ビューアー (VS と共にインストールされた Windows SDK ツールに含まれています) を使用して基になる COM 型をチェックし、VB で作成された dll を開いて、その typelib の内容を確認する必要があるのはなぜですか。
次のコードを試してください
public static byte[] PtrToByteArray(IntPtr ptr, int len) {
var array = new byte[len];
for ( int i = 0; i < len; i++ ) {
array[i] = (byte)Marshal.PtrToStructure(ptr, typeof(byte));
ptr = new IntPtr(ptr.ToInt64()+IntPtr.Size);
}
}