堆疊空間不足 (Visual Basic)
更新:2007 年 11 月
堆疊是記憶體工作區域,會隨著執行程式的需求量而動態地成長或縮小。已超過堆疊的限制。
若要更正這個錯誤
請檢查程序的巢狀結構是否太深。
確定遞迴程序會正確地終止。
如果區域變數需要的區域變數空間,比實際上可用的空間更大,請嘗試於模組層級中宣告部分變數。您也可以在 Property、Sub 或 Function 等關鍵字前面加上 Static,以便於程序靜態中宣告所有變數。或者您可以使用 Static 陳述式,於程序中宣告個別靜態變數。
請將某些固定長度字串重新定義為可變長度字串,因為固定長度字串使用的堆疊空間比可變長度字串來得多。您也可以在不需要堆疊空間模組層級中定義字串。
請使用 [Calls] 對話方塊來檢視堆疊上有哪些現用程序,藉以查看巢狀 DoEvents 函式呼叫的數目。
請確定您並未藉由觸發某事件 (該事件會呼叫堆疊上現有事件程序),而造成「事件串聯」(Event Cascade)。事件串聯與未結束的遞迴程序呼叫相似,但較不明顯,因為是由 Visual Basic 進行呼叫,而不是在程式碼中明確呼叫。使用 [Calls] 對話方塊來檢視堆疊上有哪些現用程序。