假设我有一个包含5个项目A,B,C,D和E的C ++ Visual Studio解决方案。项目已将/ STACK链接器选项设置为:
所有这些都是作为具有公开函数的单独DLL构建的。项目:
如果我调用函数A.foo_a,那么堆栈大小是多少?如果我直接打电话给E.foo_e会不一样?
答案 0 :(得分:1)
手动启动的线程(使用CreateThread)可以从函数调用的参数中获取自定义大小,主线程的堆栈大小是根据EXE的信息设置的。
你的五个DLL根本不重要。
它们可以由链接器在其文件头中设置自定义大小,
但操作系统不会对它做任何事情。
(运行时堆栈大小(在Windows上)是每个线程,而不是每个文件。)