c#调用c++ - cli dll -不确定函数参数是否正确

本文关键字:是否 参数 函数 dll 调用 c++ cli 不确定 | 更新日期: 2023-09-27 18:04:21

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

c#调用c++ - cli dll -不确定函数参数是否正确

您的c++/CLI函数需要接受List ^,而不是stl列表。但是你的编译器应该指出这一点。使用c++/CLI,接口函数应该只由托管类型组成。毕竟,这就是c++/CLI与托管代码交互的意义所在。