我是在WinCE下用MFC编写应用程序,当程序规模比较大的时候就会出现一些诡异的Bug。
每次出现这类问题,把项目属性里的“堆栈保留大小”和“堆栈提交大小”改大。这样程序就可以正常运行了。
我想请教一下大家产生这个现象的深层次原因。按照我的理解堆栈大小应该是由系统自动分配的,现在的情况好像是应用程序只在一个堆栈运行。
请教一下WinCE中堆栈与堆的作用和原理,还有如何从根本上解决问题。
------解决思路----------------------
函数有递归的最好知道多少层,递归太多,wince默认的堆栈也是支持不了的。不自己改大,好像只能支持到1000多。
------解决思路----------------------
我一般也是用 MFC 工程,对话框窗体,这个没什么不好。
静态变量,与全局变量是一样的存贮方法。使用它好像也没什么不好的。