Правильно ли я это делаю?
Я получил указатель на собственный массив, и мне нужно скопировать его в управляемый массив. Используйте memcpy () с pin_ptr.
unsigned char* pArray;
unsigned int arrayCount;
// get pArray & arrayCount (from a COM method)
ManagedClass->ByteArray = gcnew array<Byte,1>(arrayCount)
pin_ptr<System::Byte> pinPtrArray = &ManagedClass->ByteArray[0];
memcpy_s(pinPtrArray, arrayCount, pArray, arrayCount);
arrayCount - это фактическая длина pArray, поэтому особо не беспокойтесь об этом аспекте. Посмотрел код и скопировал массив из вектора. Так что я могу безопасно установить размер управляемого массива.