当前位置: 首页 > 编程语言 > C#

将结构数组转换为IntPtr分享

时间:2023-04-10 19:39:27 C#

C#学习教程:将结构数组转换为IntPtr应用。[StructLayout(LayoutKind.Sequential)]publicstructRECT{publicintLeft;公共诠释顶部;publicint对;公共诠释底部;//这里有很多函数}//所以我们要发送一些东西,实际上我这里有真实数据//同样,数组的长度不是常量RECT[]foo=newRECT[4];IntPtrptr=Marshal.AllocHGlobal(Marshal.SizeOf(foo[0])*4);Marshal.StructureToPtr(foo,ptr,true);//--失败这会在最后一行给出一个ArgumentException(“指定的结构必须是blittable或具有布局信息。”)。我需要使用PostMessage以某种方式将此RECT数组传输到另一个应用程序,因此我确实需要一个指向此数据的指针。我有哪些选择?更新:这似乎有效:IntPtrresult=Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Win32.RECT))*foo.Length);IntPtrc=newIntPtr(result.ToInt32());对于(i=0;i

最新推荐
猜你喜欢