我需要幫助,使這種轉換:如何將(託管到非託管)數組<System :: Byte ^>轉換爲字節*?
byte* bytes = Battle::Storm::GetBytes(0);
現在我得到的錯誤:
Error 3 error C2440: 'initializing' : cannot convert from 'cli::array ^' to 'byte *'
我怎樣才能做到這一點?
我需要幫助,使這種轉換:如何將(託管到非託管)數組<System :: Byte ^>轉換爲字節*?
byte* bytes = Battle::Storm::GetBytes(0);
現在我得到的錯誤:
Error 3 error C2440: 'initializing' : cannot convert from 'cli::array ^' to 'byte *'
我怎樣才能做到這一點?
從錯誤消息,據我所知,Battle::Storm::GetBytes(0);
返回一個多維數組,這是在cli::array<Byte,dimension> ^
的形式將其轉換爲原生unsigned char*
array<Byte,N>^byteMultiArray = Battle::Storm::GetBytes(0);
pin_ptr<unsigned char> array_pin = &byteArray[0, ... ,Nth 0];
unsigned char * nativeArray = array_pin;
這裏的數字N是數組的維數。
//for N = 2
pin_ptr<unsigned char> array_pin = &byteArray[0,0];
//for N = 4
pin_ptr<unsigned char> array_pin = &byteArray[0,0,0,0];
您可以使用pin_ptr <>獲得非託管陣列
array<Byte>^ arr = gcnew array<Byte>(100) ;
pin_ptr<unsigned char> pUnmanagedArr = &arr[0];
源數組是多維的。這是不正確的。 –
更正確的是:array
@nCdy:「Battle :: Storm :: GetBytes(0)」的確切返回類型是什麼? –
你想將它轉換爲本地'字節(無符號字符)'指針或管理的字節數組是'陣列 ^'? –
我想將它轉換爲本地字節或char * – Cynede