您可以使用许多方法来获得更大的内存块.
AllocHGlobal实际上IntPtr在64位上采用64位大小的值.HeapAlloc.同样,它需要一个指针大小的参数.CoTaskMemAlloc function,该函数也采用指针大小的参数.由于您声明AllocHGlobal只接受32位参数,因此您的进程似乎是32位.这才是真正的问题.在32位进程中,您不能分配超过4GB(总计).而这个限制是由指针的大小强加的.作为进一步的限制,在32位操作系统中,进程不能分配超过2GB(总计).
所以,我建议你需要切换到64位进程来解决你的问题.