我在c ++代码中有一个地图(enum,vector< double>),我想从c#应用程序访问。这是遗留代码,因此我仅限于使用COM对象传递信息。目前我们一次将一个枚举传递给c ++,并且一次作为SAFEARRAY返回一个向量。
我尝试传入SAFEARRAY的枚举,并返回SAFEARRAY的SAFEARRAYs双打。在c#中,SAFEARRAY的SAFEARRAY成为一个多维数组,我真的想要一个锯齿状数组。
答案 0 :(得分:0)
我想知道你是否可以使用MC++来处理编组?。矢量真的只是.net中的List吗?在MC ++中,您可以迭代并返回List。然后只需参考MC ++程序集。
我没有做太多的MC ++,所以我不能确定上面的内容。
答案 1 :(得分:0)
我找到了怎么做。我没有使用SAFEARRAY的SAFEARRAY,而是使用了SAFEARRAY的VARIANT。我将每个双精度矢量转换为SAFEARRAY,将SAFEARRAY转换为VARIANT,然后将VARIANT放入SAFEARRAY,然后返回到c#。它产生了我想要的锯齿状数组。