Я пытаюсь перемещать данные между управляемым (C #) и неуправляемым (C ++) Win32) код. Я могу использовать Marshal.Copy
, и он отлично работает, пока наборы данных не станут больше> 2 ГБ, поскольку Marshal.Copy
имеет 32-битное целое число со знаком (2 ГБ) для длины.
Есть идеи, как это обойти? В настоящее время я использую AllocHGlobal (IntPtr)
на управляемой стороне и .ToPointer ()
на неуправляемой стороне. Если я не могу использовать Marshal.Copy
для перемещения больших объемов данных (> 2 ГБ) вперед / назад, что я могу использовать?