c# 调用c dll void 指针类型转化问题
使用C#调用C语言dll以上函数,void*输入可能是结构体数组或者基本数据类型,请问在C#用什么参数类型代替void*?...
使用C# 调用C语言dll以上函数,void* 输入可能是结构体数组或者基本数据类型,请问在C#用什么参数类型代替void*?
展开
2个回答
展开全部
//用IntPtr,下面是结构体转换到IntPtr方式
Point p;//要传的结构体
int size=System.Runtime.InteropServices.Marshal.SizeOf(p);
IntPtr p=System.Runtime.InteropServices.Marshal.AllocHGlobal(size);
System.Runtime.InteropServices.Marshal.StructureToPtr(p, p, true);
Point p;//要传的结构体
int size=System.Runtime.InteropServices.Marshal.SizeOf(p);
IntPtr p=System.Runtime.InteropServices.Marshal.AllocHGlobal(size);
System.Runtime.InteropServices.Marshal.StructureToPtr(p, p, true);
更多追问追答
追问
这个不能输入结构体数组啊
追答
数组就取第一个元素的指针就行了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试试 System.IntPtr。
追问
能不能给个例子撒,比如我要传递一个结构体进去怎么转化为Intptr?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询