堆栈空间不足(Visual Basic)

堆栈是一个内存工作区,它随执行程序的需求动态增长和收缩。 其限制已被超过。

更正此错误

  1. 检查过程是否未嵌套太深。

  2. 请确保递归过程正确终止。

  3. 如果局部变量需要比可用空间更多的局部变量空间,请尝试在模块级别声明一些变量。 还可以在过程中静态声明所有变量,方法是使用 关键字 。 或者, Static 可以使用该语句在过程中声明单个静态变量。

  4. 将某些固定长度字符串重新定义为可变长度字符串,因为固定长度字符串使用比可变长度字符串更多的堆栈空间。 还可以在模块级别定义字符串,其中不需要堆栈空间。

  5. 通过使用Calls对话框查看堆栈上处于活动状态的过程,检查嵌套DoEvents函数调用的数量。

  6. 确保未通过触发调用堆栈上已有的事件过程来引发“事件级联”。 事件级联类似于不确定的递归过程调用,但它不太明显,因为调用由 Visual Basic 而不是代码中的显式调用。 使用 Calls 对话框查看堆栈上处于活动状态的过程。

另请参阅