将C#object [,] 2D Array转换为C ++ std 2D Array

时间:2016-07-21 08:26:51

标签: c# c++ marshalling

将C#2D对象数组转换为C ++ std 2D对象数组的最佳方法是什么。

例如,我有这个C#2d对象数组:

var data = new object[1, 5]; 
data[0, 0] = "1"; 
data[0, 1] = 1.1; 
data[0, 2] = DateTime.Now; 
data[0, 3] = true; 
data[0, 4] = null;

编组过程将如何? - 如果可能的话

是否有任何可以推荐与C#相关的好资源 - > C ++封送?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

编组看起来像

  1. 使用C ++制作2D对象数组
  2. 循环遍历C#数组中的所有索引,并以自己的方式将每个对象编组为C ++
  3. 利润
  4. 原生代码很棘手。你需要确切地知道应该如何编组所有东西。而且C#甚至没有尝试与C ++互操作 - 它专为与COM,.NET和C类库互操作而设计。它可能是,但你真的不想直接从C#与C ++交互。

    如果您想要从.NET到C ++的互操作,最好的选择是C ++ / CLI - 这允许您在单个托管程序集中组合本机C ++和托管C ++。不过,它仍然需要做很多工作。除非你在原生C ++方面非常有经验,否则你需要非常小心,因为微小的错误很容易传播,并以意想不到的方式破坏你的应用程序,最终很难调试。