我在制作全局变量时遇到了小问题。我正在使用 Visual Studio 2008 和标准 C++。
我有两个项目,一个是静态库,第二个是使用这个库的测试程序。我在 global.h 中有一个全局变量,例如
#ifndef GLOBAL_H
#define GLOBAL_H
#include <string>
extern std::string globalWord;
#endif // GLOBAL_H!
我有一个 global.cpp 我正在初始化这个变量。这个变量在我的库项目中使用。我正在从测试项目中为这个变量设置一个值,但该值没有反映在库项目中。
我已经调试过,它在测试项目中显示了新值,但是当控件到达库项目时,这个变量值显示为空。那么这个全局变量的作用域是否仅限于它所属的项目呢?
还是有更好的方法来做到这一点?我不想修改我的库中的函数或构造函数参数来传递这个值。
任何帮助都会很棒。
编辑:
这是这个变量在 global.cpp 中的声明方式
#include <string>
#include "../global.h"
std::string globalWord = "";
这就是我在图书馆中使用它的方式
#include "../global.h"
string text = globalWord;
谢谢