vc6 设置堆栈大小_解决方法

First-chance exception in platform.exe: 0xC00000FD: Stack Overflow.

please enter the path for CHKSTK.ASM.   AfxWinMain

解决方法:

在调试程序时,VC下经常要用到Step Over和Step Into,对于库函数,一般都知道使用Step Over,对于自定义函数,要使用Step Into。但是有时会出现如下提示:please enter the path for CHKSTK.ASM(check stack)。这是由于在VC调试过程中,分配的堆栈空间不够引起的。
我们知道,C中的参数传递是传值的,如果传递是一个结构体,而且该结构体内含有大量的数组空间时,很容易引起内存溢出,从而导致错误。解决方法有两个:
1.减少函数传递的参数的个数和大小,少使用内存空间。
2.在VC++下,尽量使用引用传递,从而减少参数传递占用的堆栈空间。
3.修改VC的配置。方法如下:

Project → Setting →Link 
将 Category 选项改成 Output
可以看到有一个 Stack Allocations 当中
Reserve → virtual memory
Commit → physical memory
Default 的 stack size 是 1MB
最大值为 0xffffffff (4,294,967,295)
或是可以在 compiler 完后..
在 command mode 下
下参数 /Fnumber , number 即 set stack size ..
number可以用十进位表示, 单位是 bytes