グローバル変数を機能させるのに小さな問題があります。Visual Studio 2008 と標準の C++ を使用しています。
私は 2 つのプロジェクトを持っています。1 つは静的ライブラリで、もう 1 つはこのライブラリを使用するテスト プログラムです。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;
ありがとう