1

亲爱的 StackOverflow 用户!

我最近遇到了一个不寻常的需要来解决 VB6 中的问题。我开发了一个应用程序,我需要将大量数据临时存储到内存中。由于类和类成员谈论更多资源,更重要的是需要更多时间来卸载,所以我想到了使用数组的想法。但是,似乎无法使用我计算机上的所有可用 RAM。谁能告诉我如何解决这个问题?

谢谢!

4

2 回答 2

1

这取决于您所说的“计算机上的所有 RAM”是什么意思。如果您使用的是 32 位的 VB6 编译器,那么您将只能使用 2G 的 RAM 作为标准,因为这是 VB6 一次可以处理的最大内存量。使用 EDITBIN.EXE 破解可执行文件以在 /3G windows 或 Win64 机器上利用 3G 是可能的,但如果它有效,我会感到惊讶。

最好的办法是将数据写入临时文件。您应该使用 CreateFile() / ReadFile() WinAPI 调用来进行文件访问,因为 VB6 对文件大小有相同的 2G 限制。

于 2013-06-18T06:43:59.220 回答
1

VB6 中的数组大小限制是有符号 32 位整数的最大值,即 2,147,483,647 个元素。

这实际上应该足以覆盖 32 位程序的全部地址空间,但这不太可能使用运行 64 位操作系统的现代计算机的全部 RAM 分配。

您是否考虑过用另一种支持 64 位地址空间的语言编写此处理步骤,并且只在您的 VB6 程序中执行该程序?

实际上,我在 VB3 中遇到了同样的问题,它只允许数组 2^15-1 个元素大,这是一个真正的拖累 - 不到 33,000 个元素使得许多系统的内存排序不切实际。

于 2013-06-27T21:54:30.797 回答