C ++ / CX - 如何在Window Runtime组件中创建二维Array <byte>

时间:2017-05-02 02:13:05

标签: visual-studio-2015 windows-runtime win-universal-app c++-cx

我是C ++ / CX编程的新手,请纠正任何错误的问题。

我正在尝试使用C ++ / CX在Windows运行时创建一个公共API,我必须在其中定义一个具有二维byte数组作为out参数的方法。我想,我不能将Array<byte>^用于此目的,因为它被认为是一维数组。但Visual Studio编译器建议我声明如下

void getByteArrays(int *size, Array<byte>^* arr);

  1. 但我无法在实现中初始化arr,我认为原因是一样的,Array只能是一维数组?
  2. 但是我仍然可以使用以下初始化发送Array<byte>^

    byte *buffer = /* Something */ ;
    arr[0] = ref new Array<byte>(buffer, size);
    
    1. 这种做法是否正确?
    2. 如果没有,那么仅使用byte将二维Platform namespace数组作为输出参数的最佳方法是什么?
    3. 以下是我的完整代码

      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参数的参考传递。所以,它仍然是一维数组。

0 个答案:

没有答案