IntPtr
バイトのいくつかのデータ領域を指す2 つの値がありlength
ます。length
200k から 400k の大きさのオーダーを持つことができます。
int length = /* ..*/
IntPtr ptrSrc = /*.. */;
IntPtr ptrDst = /* .. */;
ptrSrc
次に、データを からにコピーしますptrDst
。このコードは正常に動作します:
byte[] data = new byte[length];
Marshal.Copy(ptrSrc, data, 0, length);
Marshal.Copy(data, 0, ptrDst, length);
ただし、追加の一時的な (潜在的に巨大な) 配列が必要になるという欠点があります。残念ながら、 .NET フレームワークで からにMarshal.Copy
直接コピーするバリアントを見つけることができなかったので、代替手段を探しています。IntPtr
IntPtr
32 ビット Windows と 64 ビット Windows で動作するソリューションに興味があります。助言がありますか?