C# 如何在C++;返回指向C中列表指针的dll# 我是C的新手,我尝试把C++包转换成WPF项目。由于我不想重写C语言中的所有代码,所以我创建了一个C++ DLL,并封装了我在DLL中调用WPF的所有函数。但是,有些函数使用(作为输入参数或返回类型)我定义的某个节点的列表,例如,list*list,其中myNode存储一些整数值和双数值,并引用其上一个和下一个节点。清单定义如下: template<class N> class List { public: int id; double value; N* first; N* last; int numOfNodes; List* before; List* next; } 模板 班级名单{ 公众: int-id; 双重价值; N*首先; N*最后; int numOfNodes; 列表*之前; 列表*下一步; }
我尝试在C#中定义C# 如何在C++;返回指向C中列表指针的dll# 我是C的新手,我尝试把C++包转换成WPF项目。由于我不想重写C语言中的所有代码,所以我创建了一个C++ DLL,并封装了我在DLL中调用WPF的所有函数。但是,有些函数使用(作为输入参数或返回类型)我定义的某个节点的列表,例如,list*list,其中myNode存储一些整数值和双数值,并引用其上一个和下一个节点。清单定义如下: template<class N> class List { public: int id; double value; N* first; N* last; int numOfNodes; List* before; List* next; } 模板 班级名单{ 公众: int-id; 双重价值; N*首先; N*最后; int numOfNodes; 列表*之前; 列表*下一步; },c#,c++,interop,C#,C++,Interop,我尝试在C#中定义myNode,并用C#中的List直接调用此函数,但它抛出一个System.Runtime.InteropServices.MarshalDirectiveException,错误消息为“无法封送泛型类型”。如何在C#中正确调用这些函数 作为参考,假设我尝试传输的函数是List*buildList(inta,double b)和intreadtolist(std:string path,List*List) 提前谢谢关键字和结构> 关键字都创建类。
myNode
,并用C#中的List
直接调用此函数,但它抛出一个System.Runtime.InteropServices.MarshalDirectiveException
,错误消息为“无法封送泛型类型”。如何在C#中正确调用这些函数
作为参考,假设我尝试传输的函数是List*buildList(inta,double b)
和intreadtolist(std:string path,List*List)
提前谢谢你的DLL是C++还是C++?如果是纯C++,考虑使用一些处理互操作的包装函数来制作C++/CLI DLL。C++是一个普通的C++ DLL。你能详细说明一下怎么做吗?或者你能给我指一下正确的在线资源吗?谢谢。C++的列表是一个类还是一个结构?如果C++使用的结构比使用C中的结构不是一个类,那就是C++。class@jdweng这是一个毫无意义的问题。在C++中,