zoukankan      html  css  js  c++  java
  • 【转】VC 利用DLL共享区间在进程间共享数据及进程间广播消息

    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] = {''};

    #pragma data_seg()

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

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

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

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

     

    2、

    3、

    4、

    5、

  • 相关阅读:
    知识加油站
    markdown 使用
    今日计划
    继续继续
    我回来了
    2020/5/8
    2020/5/10
    明天一定要学习了
    入驻博客园
    this is a test
  • 原文地址:https://www.cnblogs.com/cppskill/p/8256926.html
Copyright © 2011-2022 走看看