将c ++地图数据传递给c#

时间:2010-03-04 22:10:13

标签: c# .net c++

我在c ++代码中有一个地图(enum,vector< double>),我想从c#应用程序访问。这是遗留代码,因此我仅限于使用COM对象传递信息。目前我们一次将一个枚举传递给c ++,并且一次作为SAFEARRAY返回一个向量。

我尝试传入SAFEARRAY的枚举,并返回SAFEARRAY的SAFEARRAYs双打。在c#中,SAFEARRAY的SAFEARRAY成为一个多维数组,我真的想要一个锯齿状数组。

  1. 有没有办法使用SAFEARRAYs在c#中生成锯齿状数组?
  2. 他们是否可以使用其他方式将地图中的向量传递给c#?

2 个答案:

答案 0 :(得分:0)

我想知道你是否可以使用MC++来处理编组?。矢量真的只是.net中的List吗?在MC ++中,您可以迭代并返回List。然后只需参考MC ++程序集。

我没有做太多的MC ++,所以我不能确定上面的内容。

答案 1 :(得分:0)

我找到了怎么做。我没有使用SAFEARRAY的SAFEARRAY,而是使用了SAFEARRAY的VARIANT。我将每个双精度矢量转换为SAFEARRAY,将SAFEARRAY转换为VARIANT,然后将VARIANT放入SAFEARRAY,然后返回到c#。它产生了我想要的锯齿状数组。