我是C ++ / CX编程的新手,请纠正任何错误的问题。
我正在尝试使用C ++ / CX在Windows运行时创建一个公共API,我必须在其中定义一个具有二维byte
数组作为out
参数的方法。我想,我不能将Array<byte>^
用于此目的,因为它被认为是一维数组。但Visual Studio编译器建议我声明如下
void getByteArrays(int *size, Array<byte>^* arr);
arr
,我认为原因是一样的,Array
只能是一维数组?但是我仍然可以使用以下初始化发送Array<byte>^
。
byte *buffer = /* Something */ ;
arr[0] = ref new Array<byte>(buffer, size);
byte
将二维Platform namespace
数组作为输出参数的最佳方法是什么?以下是我的完整代码
void getByteArrays(int *size, Array<byte>^* arr)
{
byte *buffer = /* Something */;
(*size) = /* Something */;
arr = ref new Array<byte>(2); //How do i tell compiler that it has 2 rows?
arr[0] = ref new Array<byte>(buffer, (*size));
arr[1] = ref new Array<byte>(buffer, (*size));
}
更新:我认为,编译器建议将Array<byte>^
指针作为out
参数的参考传递。所以,它仍然是一维数组。