我在使全局变量工作时遇到小问题.我使用的是Visual Studio 2008和标准C++.
我有两个项目,一个是静态库,第二个是使用该库的测试程序.我在global.h中有一个全局变量
#ifndef GLOBAL_H
#define GLOBAL_H
#include <string>
extern std::string globalWord;
#endif // GLOBAL_H!
Run Code Online (Sandbox Code Playgroud)
我有一个global.cpp,我正在初始化这个变量.该变量在我的库项目中使用.我正在从测试项目中为此变量设置一个值,但该值未反映在库项目中.
我已调试并在测试项目中显示新值,但是当控件到达库项目时,此变量值显示为空.那么这个全局变量的范围仅限于它所属的项目吗?
或者有更好的方法吗?我不想修改我的库中的函数或构造函数参数来传递此值.
任何帮助都会很棒.
编辑:
以下是在global.cpp中声明此变量的方式
#include <string>
#include "../global.h"
std::string globalWord = "";
Run Code Online (Sandbox Code Playgroud)
这就是我在我的库中使用它的方式
#include "../global.h"
string text = globalWord;
Run Code Online (Sandbox Code Playgroud)
谢谢