【问题标题】:Stack size in multiple vs projects多个 vs 项目中的堆栈大小
【发布时间】:2014-08-02 02:45:24
【问题描述】:

假设我有一个包含 5 个项目 A、B、C、D 和 E 的 C++ Visual Studio 解决方案。这些项目已将 /STACK 链接器选项设置为:

  • A = 4MB
  • B = 空(默认为 1MB)
  • C = 空(默认为 1MB)
  • D = 16MB
  • E = 25MB

所有这些都构建为具有公开功能的独立 DLL。项目:

  • A 包含一个函数 foo_a,它调用 foo_b(来自 B)和 foo_c(来自 C)
  • B 包含函数 foo_b,它调用 foo_d(来自 D)和 foo_e(来自 E)

如果我调用函数 A.foo_a ,堆栈大小是多少?如果我直接调用 E.foo_e 会一样吗?

【问题讨论】:

    标签: c++ visual-studio stack stack-size


    【解决方案1】:

    手动启动的线程(使用 CreateThread)可以从函数调用的参数中获取自定义大小,主线程的堆栈大小根据来自 EXE 的信息设置。

    您的五个 DLL 根本不重要。
    它们可以由链接器在其文件头中设置自定义大小,
    但操作系统不会对它做任何事情。

    (运行时堆栈大小(在 Windows 上)是每个线程,而不是每个文件。)

    【讨论】:

      猜你喜欢
      • 2021-03-05
      • 2020-11-15
      • 2019-10-20
      • 2023-04-10
      • 1970-01-01
      • 2012-06-26
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多