VB6最大阵列大小

时间:2013-06-17 13:50:22

标签: vb6

亲爱的StackOverflow用户!

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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

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

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