我有一个 Visual C++ 解决方案,它由 3 个项目组成。
其中一个项目,项目“A”被其他两个项目使用,它有一些应该始终相同的全局数据。
但是,当我将项目 A 链接到其他两个项目时,似乎项目 A 的两个实例正在处理不同的数据。
可能是这种情况吗?如何设置链接过程以防止这种情况发生?
--- 更新让事情更清楚
- Project 1 -
main () {
init();
test();
}
- Project 2 -
test () {
cout << get_data();
}
- Project A -
int data;
init() {
data = 123;
}
get_data() {
return data;
}
正如您在这个例子中看到的那样,我正在第一个项目中初始化项目 A 的数据,并从第二个项目中访问它。我的观察是,当第二个项目的访问发生时,数据没有初始化。
项目 A 和 2 都静态链接到项目 1,因此输出是单个可执行文件。