Скопируйте неуправляемые данные в управляемый массив

Мне нужно скопировать собственные (т.е. неуправляемые) данные (byte *) в управляемый массив байтов с C ++ / CLI (массив).

Я попробовал Marshal :: Copy (данные указываются с помощью const void * data и являются байтами dataSize)

array<byte>^ _Data=gcnew array<byte>(dataSize);
System::Runtime::InteropServices::Marshal::Copy((byte*)data, _Data, 0, dataSize);

Это дает ошибку C2665: ни одна из 16 перегрузок не может преобразовать все параметры. Затем я попробовал

System::Runtime::InteropServices::Marshal::Copy(new IntPtr(data), _Data, 0, dataSize);

, который выдает ошибку C2664: параметр 1 не может быть преобразован из «const void *» в «__w64 int».

Итак, как это можно сделать, и Marshal :: Copy действительно «лучший» (самый простой / fastest) способ сделать это?

18
задан JeffRSon 19 June 2011 в 14:34
поделиться