c#调用C++写的DLL,DLL中的接口参数有二维数组(如:char**),在c#中如何将二维数组传入?

c#调用C++写的DLL,DLL中的接口参数有二维数组(如:char**),在c#中如何将二维数组传入?
这个问题也可以解释为非托管数据与托管数据之间的封装处理。很想知道怎么样才能取消C#对非托管数据的写保护。

第1个回答  2012-01-03
我没有发现有什么问题,使用[DllImpor[("你需要引用的DLL")] private static extern 返回类型 需要引用的接口函数(你要用到的数组)。

既然是C++写的DLL,那么应该有针对这个数组的方法的,就象C#中的get和set。它与C#这种不同的,即使它在DLL中被声明成全局参数也不无法在C#中直接被导入引用的。追问

C#里会对char*类型写保护,原因是C语言的char*类型其实是一个指针,输入非托管数据,调用DLL,从C#传char【】到函数里,改动不了。会报错,内存写保护。

第2个回答  2012-04-05
绑定
相似回答