0

「混合モード」の C++ を使用しており、制御できない ac# dll にある関数を呼び出しています。すべての呼び出しが ac# test exe で機能していますが、配列を返す呼び出しを混合モードの C++ に変換できません。C ++で配列を変更する必要はありません。読み取るだけです。

C# で動作する 2 つのオプションがあります。どちらかを 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;
}
4

1 に答える 1

0

OK、私は自分で1つの答えを見つけました。このキャストの帽子を逃しました CoefficientGroup^ X = (CoefficientGroup^)eG->Current; ただし、配列宣言への回答にはまだ興味があります

于 2013-11-09T18:55:32.737 に答える