MarshalAs(UnmanagedType.ByValArray, SizeConst 大小限制
谁知道如果 MarshalAs(UnmanagedType.ByValArray, SizeConst
SizeCount 当封送处理有大小限制时。 我发现如果 Size 大则 100000,则编组函数调用不起作用,而当我输入 10000 时,该函数正在工作。
有人知道为什么吗?
anyone know if the
MarshalAs(UnmanagedType.ByValArray, SizeConst
SizeCount when do marsheling has size limitation.
i see that if the Size large then 100000 the marsheling function calling is not working and when i put 10000 the function is working.
anybody know why ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正如 Hans Passant 所说,有 64K 限制,我不知道为什么。
您始终可以使用 Marshal.AllocHGlobal 和 Marshal.PtrToStructure/Marshal.StructureToPtr 尝试另一种方法。不过,我不知道你是否可以这样处理;如果没有,则必须逐段写入数据,然后将指向已分配块的指针传递给 API 函数。
As Hans Passant says, there is a 64K limit and I don't know why.
You can always try another approach with Marshal.AllocHGlobal and Marshal.PtrToStructure/Marshal.StructureToPtr. However, I don't know if you can handle it that way; if not, you must write data piece by piece then pass the pointer to the allocated block to the API function.