gpt4 book ai didi

c# - 64 位 VB.NET 分配 > 2GB 的 RAM(.NET 错误?)

转载 作者:太空狗 更新时间:2023-10-29 23:27:52 25 4
gpt4 key购买 nike

我有一个 64 位 VB.NET 应用程序,想分配一个大小大于 2GB 的缓冲区。

在下面的代码中,“new”和“ReDim”都抛出一个“OverflowException”。

当这些函数只接受带符号的 32 位值时,我如何分配大于 2GB 的缓冲区?

(这在 C# 中可能吗?)

编辑 - 我正在运行具有 4GB RAM 的 WinXP 64。

Dim width As Long = 19005Dim height As Long = 32768Dim buffer() As Byte = New Byte((width * height * 4) - 1) {}Dim size As Long = (width * height * 4) - 1ReDim buffer(size)

最佳答案

显然,即使在 64 位操作系统上运行的 64 位 .net 应用程序下,也不可能分配超过 2GB。

我发现这非常令人失望,完全没有考虑 64 位应用程序和操作系统的用途。我正在处理 巨大 图像,并希望能够同时处理 RAM 中的所有原始字节。现在我必须实现分页算法以将 block 限制为 2GB。

嘿 Microsoft,你如何在即将发布的 .NET 版本中解决这个问题?是的,我说修复。那是因为它坏了。当您做这样愚蠢的事情时,您如何期望 64 位应用程序起飞。 (你能看出我很生气吗。)感谢收听。

Link

http://blogs.msdn.com/joshwil/archive/2005/08/10/450202.aspx

关于c# - 64 位 VB.NET 分配 > 2GB 的 RAM(.NET 错误?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1214558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com