MarshalAs(UnmanagedType.ByValArray,SizeConst大小限制

MarshalAs(UnmanagedType.ByValArray, SizeConst size limitation

本文关键字:SizeConst UnmanagedType ByValArray MarshalAs      更新时间:2023-10-16

任何人都知道MarshalAs(UnmanagedType.ByValArray,SizeConst

SizeCount当做沼泽有尺寸限制时。我看到,如果Size大到100000,marshalling函数调用就不起作用,而当我放入10000时,函数就起作用了。

有人知道为什么吗?

正如Hans Passant所说,有64K的限制,我不知道为什么。你总是可以尝试另一种方法使用Marshal.AllocHGlobal和Marshal.PtrToStructure/Marshal.StructureToPtr。但是,我不知道你是否可以这样处理;如果不是,则必须逐段写入数据,然后将指向已分配块的指针传递给API函数。