一夕残阳 2013-08-14 12:51
浏览 1720

两个进程间能使用共享内存段进行数据共享吗?

我是这样做的:
在一个dll里面定义一个共享数据段,里面定义一个整形数据,然后定义两个导出函数对这个整形数据进行操作。
#pragma data_seg ("ShareDataSeg") //开辟一个名字为"ShareDataSeg"的共享内存段
int g_nShareInt = 0;
#pragma data_seg() //共享内存段"ShareDataSeg"定义结束
//加上这条声明,让这个共享内存段可以在所有动态或静态连接这个DLL的进程中都能看到,这个共享内存段会直接加载到进程堆栈空间
#pragma comment(linker, "/SECTION:ShareDataSeg,RWS")
extern "C" __declspec(dllexport) int SetVal(int val);
extern "C" __declspec(dllexport) int GetVal();

再写两个进程,都加载这个dll,都对这个共享数据段内的整形数据的值进行修改,发现两个进程使用的根本就是两个不同的变量,根本没有进程间共享的效果。
求高手指点!

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 shape_predictor_68_face_landmarks.dat
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料