有没有办法在使用 GCC 编译/链接时增加 Windows 应用程序的堆栈大小?
IIRC,在 GCC 中,您可以向 ld 提供 --stack,[bytes] 参数。
例如
gcc -Wl,--stack,16777216 -o file.exe file.c
要拥有 16MiB 的堆栈,我认为默认大小是 8MiB。
链接后可以运行editbin。
Windows 中有两种堆栈大小。初始提交的大小和总保留大小。您可以使用 .def 文件中的 STACKSIZE 语句来设置两者。
创建线程时,您使用 dwStackSize 参数,但我不确定如何更改主线程的大小,这表明它在 exe 的标头中,因此它可能是编译器/链接器的一个选项,否则您需要找到标题的相关部分并自行更改。
http://msdn.microsoft.com/en-us/library/ms686774(VS.85).aspx