社区
进程/线程/DLL
帖子详情
******关于lib中的全局变量******
sunsfq
2005-12-15 02:38:31
我做了一个lib库,里面有一个全局变量
static CCmdParseClass *pFirstClass = NULL;
我要在很多模块里面引用这个lib,但是pFirstClass在每一个模块中会有一个copy,
我想让pFirstClass只有一个实体,任何包含该lib的模块都访问同一个pFirstClass。
如何做到?
...全文
426
13
打赏
收藏
******关于lib中的全局变量******
我做了一个lib库,里面有一个全局变量 static CCmdParseClass *pFirstClass = NULL; 我要在很多模块里面引用这个lib,但是pFirstClass在每一个模块中会有一个copy, 我想让pFirstClass只有一个实体,任何包含该lib的模块都访问同一个pFirstClass。 如何做到?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunsfq
2005-12-15
打赏
举报
回复
debug跟进去确实不行。
下面方法不行。
#pragma data_seg("Shared")
CCmdParseClass *pFirstClass = NULL;
#pragma data_seg()
#pragma comment(linker, "/section:Shared,rws")
oyljerry
2005-12-15
打赏
举报
回复
lib? 静态库? 静态库会直接link进exe,所以不能share了
oyljerry
2005-12-15
打赏
举报
回复
为什么不行? 什么不行?
sunsfq
2005-12-15
打赏
举报
回复
我的这个工程是lib,不是dll。
oyljerry
2005-12-15
打赏
举报
回复
这样每个附属于DLL的进程都将接受到属于自己的数据拷贝,一个进程的数据变化并不会反映到其他进程的数据中。
-------------这里意思好像就是只能共享读,一个进程改变了数据,其他进程无法获知
sunsfq
2005-12-15
打赏
举报
回复
#pragma data_seg("Shared")
CCmdParseClass *pFirstClass = NULL;
#pragma data_seg()
#pragma comment(linker, "/section:Shared,rws")
-----------------------------------------------------
这种方法,我试了,不行。
oyljerry
2005-12-15
打赏
举报
回复
.2、利用共享内存DLL
共享数据DLL允许进程以类似于Windows 3.1 DLL共享数据的方式访问读写数
据,多个进程都可以对该共享数据DLL进行数据操作,达到共享数据的目的。在
WIN32中为建立共享内存,必须执行以下步骤:
首先创建一个有名的数据区。这在Visual C++中是使用data_seg pragma宏
。使用data_seg pragma宏必须注意数据的初始化:
#pragma data_seg(“MYSEC")
char MySharedData[4096]={0};
#pragma data_seg()
然后在用户的DEF文件中为有名的数据区设定共享属性。
LIBRARY TEST
DATA READ WRITE
SECTIONS
.MYSEC READ WRITE SHARED
这样每个附属于DLL的进程都将接受到属于自己的数据拷贝,一个进程的数据
变化并不会反映到其他进程的数据中。
在DEF文件中适当地输出数据。以下的DEF文件项说明了如何以常数变量的形
式输出MySharedData。
EXPORTS
MySharedData CONSTANT
最后在应用程序(进程)按外部变量引用共享数据。
extern _export"C"{char * MySharedData[]}
进程中使用该变量应注意间接引用。
m_pStatic=(CEdit*)GetDlgItem(IDC_SHARED);
m_pStatic->GetLine(0,*MySharedData,80);
oyljerry
2005-12-15
打赏
举报
回复
放到共享数据段中来共享
gohappy_1999
2005-12-15
打赏
举报
回复
lib也行?
Kudeet
2005-12-15
打赏
举报
回复
这样只是共享了pFirstClass 指针,可以用全局对象试试
#pragma data_seg("Shared")
CCmdParseClass FirstClass; //必须要初始化
#pragma data_seg()
#pragma comment(linker, "/section:Shared,rws")
Kudeet
2005-12-15
打赏
举报
回复
#pragma data_seg("Shared")
CCmdParseClass *pFirstClass = NULL;
#pragma data_seg()
#pragma comment(linker, "/section:Shared,rws")
gohappy_1999
2005-12-15
打赏
举报
回复
肯怕不行
sunsfq
2005-12-15
打赏
举报
回复
没有人回答么?
基于springboot因光而遇游戏网站的设计与实现-附源码13976
本系统的使用可以实现本光遇游戏网站的信息化,可以方便管理员进行更加方便快捷的管理,可以提高游戏网站的管理效率。
基于Springboot《因光而遇》游戏网站--附源码13976
格按照软件开发流程,对系统进行各个阶段分析设计。 光遇游戏网站的主要使用者分为管理员和用户,实现功能包括管理员:后台首页、系统用户(管理员、注册用户)光遇信息管理(光遇信息列表)系统管理(轮播图管理)通知公告管理(通知公告)资源管理(资讯列表、资讯分类)交流管理(论坛列表、论坛分类)用户:首页、我的账户、个人
中
心、交流论坛、通知公告、光遇资讯、光遇信息等功能。由于本网站的功能模块设计比较全面,所以使得游戏网站信息管理的过程得以实现。
Springboot《因光而遇》游戏网站-计算机毕业设计源码13976
摘 要 《光·遇》由网易游戏代理,凭借清新唯美的美术画面和创新独特的游双玩法,荣膺“2020 Apple Design Awards”,“2020 Google Play 年度最具创新力游戏”,与友相聚,共赏音律,旅人们用图画、视频等多种形式,记录了和友人在音乐
中
畅谈玩耍。 本论文以网易游戏代理的光遇游戏网站为研究对象,探讨了其基于SpringBoot框架的开发。SpringBoot是一种用于简化Spring应用程序开发的框架,它具有自动配置、快速启动和便捷部署等特点......
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章