多个应用程序怎么同时访问到同一个dll中的同一数据
多个应用程序如何同时访问到同一个dll中的同一数据
要实现一个dll从串口读数据,然后可以用多个应用程序同时得到这个dll从串口中读出来的数据,要如何实现,请高手指点一下
------解决方案--------------------
共享数据段:
#pragma data_seg( "SHARE " )
int a = 0;//这个能共享.
#pragma data_seg()
#pragma comment(linker, "/SECTION:SHARE,RWS " )
------解决方案--------------------
不明白为什么不行, 不明白你说的.
DLL只要加载一次就可以了, 然后映射到不同应用程序进程的地址空间呀, 共享数据段不行?
------解决方案--------------------
在dll种开filemapping吧,应该没问题
------解决方案--------------------
你这是两个DLL啊,不是同一个DLL啊,我是没有办法,又不许用内存映射文件,
------解决方案--------------------
MSDN说CreateFileMapping是可以支持的
Windows CE OS 1.01 and later Winbase.h Coredll.lib, Nk.lib
------解决方案--------------------
实在不行用最笨的办法
直接写到本地文件里面..
------解决方案--------------------
如果不存在特定socket服务程序 那么创建一个这个服务
使用这个服务程序去读取串口数据并保存
程序中连接socket服务程序去获取数据
上面的过程都可以封装到dll中,代码可以单一化
curelex(M) 的直接写文件也是可以的
要实现一个dll从串口读数据,然后可以用多个应用程序同时得到这个dll从串口中读出来的数据,要如何实现,请高手指点一下
------解决方案--------------------
共享数据段:
#pragma data_seg( "SHARE " )
int a = 0;//这个能共享.
#pragma data_seg()
#pragma comment(linker, "/SECTION:SHARE,RWS " )
------解决方案--------------------
不明白为什么不行, 不明白你说的.
DLL只要加载一次就可以了, 然后映射到不同应用程序进程的地址空间呀, 共享数据段不行?
------解决方案--------------------
在dll种开filemapping吧,应该没问题
------解决方案--------------------
你这是两个DLL啊,不是同一个DLL啊,我是没有办法,又不许用内存映射文件,
------解决方案--------------------
MSDN说CreateFileMapping是可以支持的
Windows CE OS 1.01 and later Winbase.h Coredll.lib, Nk.lib
------解决方案--------------------
实在不行用最笨的办法
直接写到本地文件里面..
------解决方案--------------------
如果不存在特定socket服务程序 那么创建一个这个服务
使用这个服务程序去读取串口数据并保存
程序中连接socket服务程序去获取数据
上面的过程都可以封装到dll中,代码可以单一化
curelex(M) 的直接写文件也是可以的