c#调用C++写的DLL,DLL中的接口参数有二维数组(如:char**),在c#中如何将二维数组传入?
c#调用C++写的DLL,DLL中的接口参数有二维数组(如:char**),在c#中如何将二维数组传入?这个问题也可以解释为非托管数据与托管数据之间的封装处理。很想知道怎...
c#调用C++写的DLL,DLL中的接口参数有二维数组(如:char**),在c#中如何将二维数组传入?
这个问题也可以解释为非托管数据与托管数据之间的封装处理。很想知道怎么样才能取消C#对非托管数据的写保护。 展开
这个问题也可以解释为非托管数据与托管数据之间的封装处理。很想知道怎么样才能取消C#对非托管数据的写保护。 展开
2个回答
展开全部
我没有发现有什么问题,使用[DllImpor[("你需要引用的DLL")] private static extern 返回类型 需要引用的接口函数(你要用到的数组)。
既然是C++写的DLL,那么应该有针对这个数组的方法的,就象C#中的get和set。它与C#这种不同的,即使它在DLL中被声明成全局参数也不无法在C#中直接被导入引用的。
既然是C++写的DLL,那么应该有针对这个数组的方法的,就象C#中的get和set。它与C#这种不同的,即使它在DLL中被声明成全局参数也不无法在C#中直接被导入引用的。
追问
C#里会对char*类型写保护,原因是C语言的char*类型其实是一个指针,输入非托管数据,调用DLL,从C#传char【】到函数里,改动不了。会报错,内存写保护。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询