MarshalAs(UnmanagedType.ByValArray,SizeConst大小限制

时间:2012-02-21 09:54:18

标签: c# c++ pinvoke

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

当marsheling有尺寸限制时的SizeCount。 我看到,如果Size大于100000 marsheling函数调用不起作用,当我放10000时该函数正在工作。

有人知道为什么吗?

1 个答案:

答案 0 :(得分:1)

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