我需要帮助来进行这样的转换:
byte* bytes = Battle::Storm::GetBytes(0);
Run Code Online (Sandbox Code Playgroud)
现在我收到错误:
错误3错误C2440:'初始化':无法从'cli :: array ^'转换为'byte*'
我怎样才能做到这一点?
ali*_*hoo 15
从我理解的错误消息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;
Run Code Online (Sandbox Code Playgroud)
这里数字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];
Run Code Online (Sandbox Code Playgroud)
小智 10
您可以使用pin_ptr <>来获取非托管数组
array<Byte>^ arr = gcnew array<Byte>(100) ;
pin_ptr<unsigned char> pUnmanagedArr = &arr[0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15840 次 |
| 最近记录: |