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 的方式吗?谢谢,某人

4

1 回答 1

1

您的 C++/CLI 函数需要采用 List < Contact > ^,而不是 STL 列表。但是你的编译器应该已经指出了这一点。使用 C++/CLI,您的接口函数应该只包含托管类型。毕竟,这就是 C++/CLI 与托管代码交互的意义所在。

于 2013-03-16T19:57:29.707 回答