我正在使用“混合模式”c ++并调用c#dll中我无法控制的函数。我有所有调用在c#test exe中工作,但是我无法将返回数组的调用转换为混合模式c ++。我不需要在c ++中修改数组,只需阅读它。
我有2个选项在c#中工作,使用c ++工作就足够了。
这是从c#dll
获取数组的基本c#exe调用CoefficientGroup[] G = Cfg.GetCoefficientGroups();
在我的c ++中,我尝试了许多选项,但没有用 - 它不会编译
CoefficientGroup^[] G = Cfg->GetCoefficientGroups(); etc etc
我也在c#中尝试过这种方法,效果很好
System.Collections.IEnumerator eG = Cfg.GetCoefficientGroups().GetEnumerator();
while (eG.MoveNext())
{
CoefficientGroup X = eG.Current as CoefficientGroup;
}
但在c ++中,我发现无法在c ++中进行“as”演员编译 - 如下所示
System::Collections::IEnumerator^ eG = Cfg->GetCoefficientGroups()->GetEnumerator();
while (eG->MoveNext())
{
CoefficientGroup^ X = (CoefficientGroup)eG->Current;
}
答案 0 :(得分:0)