dll的全局变量不共享?
tyzam 2008-06-04 11:49:11 最近在搞jni的东东,java调用vc的dll,在dll里定义了
#pragma data_seg ("sharedata")
bool m_gbInited = false;
vector<char> m_gv_Data;
string test;
int m_glDataSize = 0;
//共享数据
#pragma data_seg()
#pragma comment(linker, "/SECTION:sharedata,rws")
结果两个进程(调用同一个dll)同时运行,第一个启动的进程把上面的变量都初始化了
m_gbInited=true;
test="this is test";
m_glDataSize=124;
m_gv_Data也填充了数据
然后执行第二个进程,结果观察到的test仍为空值,m_gbInited和m_glDataSize的值是进程一改变后的新值,奇怪了,data_seg不支持全局共享麽?