假设您有一个使用 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/