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的使用方法有误?
本人这边是一个枚举类里面的值
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);
试试看可以用不
byte a=(byte)Enum.First;
Interface.Init(ref a);
试试看可以用不