共享内存数据段

清水火 2009-08-24 01:23:07
#define MAX_MAP_FILE_NUM 20 //the maximum numbers of file-mapping object you can create
#define MAP_FILE_TAG_NAME_LEN 30 //file-mapping object's tag

typedef struct tag_mapping_file_info
{
char szMapFileTag[MAX_MAP_FILE_NUM][MAP_FILE_TAG_NAME_LEN];
tag_mapping_file_info()
{
memset(&szMapFileTag, 0, MAX_MAP_FILE_NUM*MAP_FILE_TAG_NAME_LEN);
}
}MAP_FILE_INFO, *P_MAP_FILE_INFO; //file-mapping infomation


#pragma data_seg("SHARED_HANDLE") // define share data segment be entitled "SHARED_HANDLE"
MAP_FILE_INFO seg_mapInfo; // the share data should be payed attention to especially, it must be
//initialized, as variables not be initialized will be saved
//in bss data segment by the complier

volatile int seg_nMapFileNum = 0;
volatile bool seg_bInCriticalSection = FALSE; // synchronization sign
#pragma data_seg()


在这个共享段内,为什么seg_mapInfo数据,我不能在另一个进程中查看到,全是空的。而对于seg_nMapFileNum却是可以达到共享的效果?
...全文
154 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
清水火 2009-08-26
  • 打赏
  • 举报
回复
怎么没人回复呢。
清水火 2009-08-25
  • 打赏
  • 举报
回复
必须初始化。那这个结构体需要如何初始化。我已经在结构体中初始化过了。
jufengaihaozhe 2009-08-24
  • 打赏
  • 举报
回复
seg_mapInfo必须初始化~要不编译器不能将之视为共享数据
fengrx 2009-08-24
  • 打赏
  • 举报
回复
seg_mapInfo; 感觉还是这个初始化的问题。虽然LZ已经在结构体中初始化了。
wltg2001 2009-08-24
  • 打赏
  • 举报
回复
后面加一句:
#pragma comment(linker,"/SECTION:SHARED_HANDLE,RWS")

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧