亲爱的StackOverflow用户!
我最近遇到了解决VB6问题的不寻常需求。我开发了一个应用程序,我需要将大量数据临时存储到内存中。由于类和类成员需要更多资源,更重要的是需要更多时间来卸载,我想到了使用数组的想法。但似乎无法使用我计算机上的所有可用RAM。谁能让我知道如何解决这个问题?
谢谢!
答案 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个元素使许多系统的内存排序不切实际。