マネージオブジェクトのポインタ変換

マネージオブジェクトからIntPtrに変換

GCHandle gch = GCHandle.Alloc( targetObject, GCHandleType.Pinned );
IntPtr ptr = gch.AddrOfPinnedObject();

配列からIntPtrに変換

Marshal.UnsafeAddrOfPinnedArrayElement( targetArray, 0 );

これで先頭ポインタが取れる。

逆:IntPtrから配列に変換 - Memo+