C#调用C++dll,本人怎么样将枚举中的值转换成指针给他

.Net技术 码拜 8年前 (2016-03-01) 2376次浏览
C++是要传入指针的,uint8*
本人这边是一个枚举类里面的值
int size = Marshal.SizeOf(Convert.ToInt32(Enum.First));
IntPtr a = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(Enum.First, a, true);
Interface.Init(a)
这样做对吗?
在 Marshal.StructureToPtr(Enum.First, a, true);这一步中
会报  指定结构必须能直接复制到本机结构中,或是具有布局信息。的错误
枚举里面要改改动什么吗?
还是本人IntPtr的使用方法有误?
解决方案

40

uint8* 实际上相当于C#的byte;
byte a=(byte)Enum.First;
Interface.Init(ref a);
试试看可以用不

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#调用C++dll,本人怎么样将枚举中的值转换成指针给他
喜欢 (0)
[1034331897@qq.com]
分享 (0)