如何解决将C#锯齿状数组编组为C ++
|| 我试图将2D C#锯齿状数组(double[][] jaggedArray
)编组到C ++ dll,其中我已将接收变量指定为double**
。
但是,我收到消息:
没有针对的封送处理支持
嵌套数组。
除了扁平化锯齿状数组之外,还有没有办法在C ++ dll中使用C#中的锯齿状数组?
解决方法
使用低级的Marshal类方法,可以将任何类型的数据封送到非托管内存。例如,对于jaggedArray中的每个double []数组,请使用Marshal.AllocHGlobal分配非托管内存块,并使用Marshal.Copy方法(Double [],Int32,IntPtr,Int32)方法向其复制数组成员。 AllocHGlobal返回IntPtr类型,在这种情况下,它可以作为Poiner(double *)传递给C ++方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。