3 つのプロジェクトで構成される Visual C++ ソリューションがあります。
これらのプロジェクトの 1 つであるプロジェクト「A」は、他の両方のプロジェクトで使用されており、常に同じであるはずのグローバル データが含まれています。
ただし、プロジェクト A を他の両方のプロジェクトにリンクすると、プロジェクト A の 2 つのインスタンスが異なるデータで作業しているように見えます。
これは事実であり、これが起こらないようにリンクプロセスを設定するにはどうすればよいですか?
--- より明確にするための更新
- Project 1 -
main () {
init();
test();
}
- Project 2 -
test () {
cout << get_data();
}
- Project A -
int data;
init() {
data = 123;
}
get_data() {
return data;
}
この例でわかるように、最初のプロジェクトでプロジェクト A のデータを初期化し、2 番目のプロジェクトからアクセスしています。私の観察では、2 番目のプロジェクトからのアクセスが行われたときにデータが初期化されていません。
プロジェクト A と 2 の両方がプロジェクト 1 に静的にリンクされているため、出力は単一の実行可能ファイルになります。