【转】VC 利用DLL共享区间在进程间共享数据及进程间广播消息
2018-01-10 09:27
357 查看
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、
在进程间共享数据有很多种方法,剪贴板,映射文件等都可以实现,这里介绍用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共享区间在进程间共享数据及进程间广播消息
- VC 利用DLL共享区间在进程间共享数据及进程间广播消息
- VC 利用DLL共享区间在进程间共享数据及进程间广播消息
- VC 利用DLL共享区间在进程间共享数据及进程间广播消息
- VC 利用DLL共享区间在进程间共享数据及进程间广播消息
- VC 利用DLL共享区间在进程间共享数据及进程间广播消息
- 利用DLL在进程间共享数据
- 在VC++ 6.0下利用共享内存、消息实现内部进程通讯
- DLL入门浅析(5)——使用DLL在进程间共享数据
- 在VC++ 6.0下利用消息实现内部进程通讯
- 利用内存映射文件在进程间共享数据
- DLL共享数据段,实现多进程数据共享总结
- 使用DLL在进程间共享数据
- DLL入门浅析(5)——使用DLL在进程间共享数据
- VC++共享数据段实现进程之间共享数据
- VC共享内存实现进程间数据的交换
- 利用内存映射文件在进程间共享数据
- 使用DLL在进程间共享数据
- 利用VC从DLL传递消息到EXE
- 使用DLL在进程间共享数据