C#调用C ++ - CLI dll - 不确定函数参数是否正确

时间:2013-03-16 19:39:43

标签: c# c++-cli

在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

1 个答案:

答案 0 :(得分:1)

您的C ++ / CLI函数需要获取List&lt;联系&gt; ^,不是STL列表。但是你的编译器应该指出这一点。使用C ++ / CLI,您的接口函数应仅包含托管类型。毕竟,这就是C ++ / CLI的重点,与托管代码接口。