У меня небольшая проблема с созданием глобальной переменной. Я использую Visual Studio 2008 и стандарт C ++.
У меня есть два проекта, один - статическая библиотека, а второй - тестовая программа, использующая эту библиотеку. У меня есть глобальная переменная в global.h, как
#ifndef GLOBAL_H
#define GLOBAL_H
#include <string>
extern std::string globalWord;
#endif // GLOBAL_H!
У меня есть global.cpp, где я инициализирую эту переменную. Эта переменная используется внутри моего библиотечного проекта. Я устанавливаю значение для этой переменной из тестового проекта, но это значение не отражается в проекте библиотеки.
Я отладил, и он показывает новое значение в тестовом проекте, но когда элемент управления достигает проекта библиотеки, это значение переменной отображается пустым. Так ограничена ли область действия этой глобальной переменной только проектом, к которому она относится?
Или есть лучший способ сделать это? Я не хочу изменять параметры моей функции или конструктора в моей библиотеке, чтобы передать это значение.
Любая помощь будет отличной.
Edit:
Вот как эта переменная объявляется в global.cpp
#include <string>
#include "../global.h"
std::string globalWord = "";
Вот так я и использовал в своей библиотеке
#include "../global.h"
string text = globalWord;
Спасибо