如何在C++中实现进程全局变量?

viv*_*dos 7 c++

通常在 .cpp 文件中使用变量会导致该变量全局可用,如下所示:

.h file:
extern int myGlobal;
void work();

.cpp file:
int myGlobal = 42;
void work(){ myGlobal++; }
Run Code Online (Sandbox Code Playgroud)

当 .cpp 文件放入静态库并且多个共享库 (DLL) 或针对该静态库的可执行链接时,每个文件都有自己的 .cpp 文件副本myGlobal。work() 将修改它自己的变量版本。

我现在的问题是:有没有办法获取进程范围的唯一变量或指向该变量的指针?与线程范围变量的线程局部存储类似。它不必是平台独立的。如果它能在 Win32 中运行,那就加分了:)

Dan*_*ker 7

简单:将进程中的所有 DLL 链接到公开该变量的单个 DLL。