1

C# の世界から、List オブジェクトへの参照を c++-CLI dll に渡したいと考えています。c++-cli dll の名前空間は MatsWrapper です。連絡先は管理対象です。

        List<Contact> contactList = new List<Contact>();
        String str = "C:\\DATA20110524064.h5";
        MatsWrapper.Class1 cl = new MatsWrapper.Class1();
        cl.CallMats(str, ref contactList);

私の c++-cli dll 関数は正しい署名を持っていますか?

int MatsWrapper::Class1::CallMats(String^ file_path, std::list<Contact>^ contactList)
{

}

c++-cli で Contact オブジェクトにアクセスする方法がわからないため、自分でテストすることはできません。しかし、アクセス方法がわかったとき、私の署名は C# が CallMats を呼び出す方法と一致するでしょうか? ありがとう、sb

4

1 に答える 1

1

C ++ / CLI関数は、STLリストではなく、リスト<連絡先>^を取得する必要があります。しかし、コンパイラはそれを指摘する必要があります。C ++ / CLIでは、インターフェイス関数はマネージ型のみで構成されている必要があります。結局のところ、それがC ++ / CLIのポイントであり、マネージコードとのインターフェースです。

于 2013-03-16T19:57:29.707 に答える