关于C#调用托管C++DLL,传递的参数问题!

我在CLR将WIN32的类进行封装成托管的C++DLL,有个函数本来参数是unsignedchar数组的,但在C#上调用的时候却变成unsignedchar指针了,为什么... 我在CLR将WIN32的类进行封装成托管的C++DLL,有个函数本来参数是unsigned char 数组的,但在C#上调用的时候却变成unsigned char 指针了,为什么会这样?如何解决? 展开
 我来答
一生吥胜
2013-11-13 · TA获得超过208个赞
知道小有建树答主
回答量:208
采纳率:0%
帮助的人:133万
展开全部
这是正常的,在C++中如果一个函数的形参是一个数组,那么当你在传入对应数组实参的时候,实参自动转化为一个指向该数组第一个元素的同类型的指针,所以unsinged char[],在调用的时候实际上编译器传入的是一个unsigned char* ptr;而且该ptr指向数组unsinged char[]的第一个元素。
追问
那如果我想在C#也是同样传递一个数组,该如何修改呢?
追答
C#里没有指针,你可以使用引用来传递吧,我对C#不是很熟,不好意思。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式