假设您有一个使用 C++ DLL 的 VB6 应用程序。它们共享相同的内存(您可以在另一个中使用一个指针)。 DLL 在 VB6 应用程序中声明为 Public Declare Function ... Lib ...
那么这如何符合“堆栈从内存的一侧增长,堆从另一侧增长”的理念呢? DLL的堆栈在哪里?应用程序启动时是否分配了全局 DLL 变量?如果是这样,为什么当我尝试从 DLL 运行函数时它只给我一个错误?
最佳答案
VB6 使用 thread local storage对于模块级变量,而不是数据段。这意味着模块中的公共(public)(全局)变量对于不同的线程可以有不同的值。这不是 C/C++ 开发人员所习惯的。
关于c++ - DLL 的全局变量存储在内存中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7086585/