码迷,mamicode.com
首页 > 系统相关 > 详细

【转】VC 利用DLL共享区间在进程间共享数据及进程间广播消息

时间:2018-01-10 11:47:40      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:tail   共享   section   方法   数据区   查看   strong   const   string   

1、http://blog.csdn.net/morewindows/article/details/6702342

 在进程间共享数据有很多种方法,剪贴板,映射文件等都可以实现,这里介绍用DLL的共享区间在进程间共享数据,及共享数据有变化时及时的反馈给各相关进程。

 

一.在DLL中设置共享区间

在DLL中是用数据段来实现共享区间的,有了这个共享区间,各进程可以方便的共享数据。

1.先用#pragma data_seg(Name)设置名为Name的数据段。

2.再用#pragma comment(linker, "/SECTION:Name,RWS")设置名为Name的数据段属性。/SECTION就表示为这是一个数据区间,R——Read读,W——Write写,S——Share共享。

如:

const int MAXSTRINGLEN = 1000;

#pragma data_seg("ShareData")

int iTotal = 0;

char szString[MAXSTRINGLEN] = {‘\0‘};

#pragma data_seg()

#pragma comment(linker, "/SECTION:ShareData,RWS")

注意数据一定要先初始化,否则无效。再写DLL的导出函数来操作数据如添加字符,得到字符串或直接得到字符串指针。

可以用dumpbin /SUMMARY test001.dll来查看新创建的ShareData区域。如下图:

技术分享图片

注意段的名字被截断了,再输入dumpbin /SECTION:ShareDat test001.dll查看段的详细信息,如下图:

 技术分享图片

 

2、

3、

4、

5、

 

【转】VC 利用DLL共享区间在进程间共享数据及进程间广播消息

标签:tail   共享   section   方法   数据区   查看   strong   const   string   

原文地址:https://www.cnblogs.com/cppskill/p/8256926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!