方法之一:#pragma data_seg() 格式: #pragma data_seg("自己的数据段名") int g_ValueA = -1; // 全局变量,要赋值 #pragma data_seg() 说明: 1.以全局变量来定义,即函体之外; 2.必需初始化,否则微软编译器会把未初始化的变量放到.BSS段中; 3.在Linker的Command Line内添/SECTION:自己的数据段名,参数; 具体描述: 某工程名Property Pages->Linker->Command Line-> Additional Options->/SECTION:自己的数据段名,RWS 参数说明: R为允许读,W为允许写,S为允许共享 方法之二:不用在IDE的Linker里设置了,用#pragma comment(linker,"/section:MyData,rws")代替 #pragma comment(linker,"/section:MyData,rws")
#pragma data_seg("MyData")
int g_iProNum = -1;
#pragma data_seg() 方法之三:用“工程名.def文件”来说明共享数据变量 1.在CPP文件中定义变量 #pragma data_seg("MyData")
int g_iProNum = -1;
#pragma data_seg() 2.在*.def文件中说明变量的属性 SECTIONS MyData READ WRITE SHARED 3.在Linker的Command Line内添/DEF:"*.def的路径"; 具体描述:(EXE程序要加这第三步) 某工程名Property Pages->Linker->Command Line-> Additional Options->/DEF:".TShareDataSeg.def"调用方法: 如一: g_iProNum++; 如二: // 读取共享数据段里的变量
CString strTmp; strTmp.Format("%d", g_iProNum); AfxMessageBox(strTmp);