有人愿意为那些对非托管代码和复杂的内存管理一无所知的人翻译这句话吗?
此缓冲区的存储空间是从大小为 64 KB 的进程的共享堆中分配的。缓冲区的最大大小将取决于堆使用情况。
它出现在几十个 MSDN 页面上,例如WriteConsole,但我找不到任何 API 可以计算这种数组在爆炸之前允许的最大大小,凭经验我可以告诉它在 61 到 62.5 KB 之间(通过调用 64 , 63, 62 等直到它停止设置DllImport
) SetLastError
。是否有类似GetTotalHeapSize
的东西(如果它不是独立于 Windows 版本、平台架构、默认值等的 const 64KB)和类似的东西GetCurrentHeapInUse
?如何获得我可以传递给该方法和其他 P/Invoked 方法的最大字节数?