在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
答案 0 :(得分:1)
您的C ++ / CLI函数需要获取List&lt;联系&gt; ^,不是STL列表。但是你的编译器应该指出这一点。使用C ++ / CLI,您的接口函数应仅包含托管类型。毕竟,这就是C ++ / CLI的重点,与托管代码接口。