社区
进程/线程/DLL
帖子详情
高分求助:如何在程序间共享大量内存数据
lide19
2004-05-08 05:22:55
我现在要做2个程序,一个程序负责把大文件读到内存生成一块区域。我们的机器内存很大按GB计。该程序一直运行。
另外一个程序访问上个程序创建的内存区域。根据这些数据该程序对输入的文件操作并输出结果。
问高手如何实现?我用VC6 或VC.net
我知道 Win32有 内存映射文件方法共享内存,但是好像要是一个程序的2个实例。是否这样?该方法还有哪些限制?如果是不同程序间共享,有其他方法吗?
多谢UP者,送1分!
...全文
68
15
打赏
收藏
高分求助:如何在程序间共享大量内存数据
我现在要做2个程序,一个程序负责把大文件读到内存生成一块区域。我们的机器内存很大按GB计。该程序一直运行。 另外一个程序访问上个程序创建的内存区域。根据这些数据该程序对输入的文件操作并输出结果。 问高手如何实现?我用VC6 或VC.net 我知道 Win32有 内存映射文件方法共享内存,但是好像要是一个程序的2个实例。是否这样?该方法还有哪些限制?如果是不同程序间共享,有其他方法吗? 多谢UP者,送1分!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lide19
2004-06-10
打赏
举报
回复
感谢各位
lide19
2004-05-11
打赏
举报
回复
IPC好像只是在unix linux下使用,我用.net能用吗?贴个例子看看。
mzg3
2004-05-10
打赏
举报
回复
up
halk
2004-05-09
打赏
举报
回复
1. 我以为最好还是不用对象(类实例),而用缓冲区。当然,如果对象只包含数据成员(int, char等基本数据类型,非对象非数组),或者你只对其中的数据成员感兴趣,还是可以的。
2. 不必。MapViewOfFile后得到映射的指针,然后你要访问的地址偏移量是多少,就直接定位到那里就行了。
li_zero
2004-05-09
打赏
举报
回复
对象的存取,需要实现相应的方法,就好像要把一个对象存储到文件里,然后再读出这个信息并根据此创建新的对象,类似Serialize方法
li_zero
2004-05-09
打赏
举报
回复
关注
baoyuhua
2004-05-09
打赏
举报
回复
又学到不少东西
ymbymb
2004-05-09
打赏
举报
回复
参考下面链接,
http://expert.csdn.net/Expert/topic/2992/2992748.xml?temp=.8207056
调用CreateFile时,如果文件名为NULL, 则在内存里创建文件映射对象,效率不错!
fzd999
2004-05-09
打赏
举报
回复
实现共享内存,其实并没有什么特别的限制,关键在于两个进程之间的权限整合。
这么说,假如创建共享内存文件的程序是Service权限,而一个运行在user权限下的进程就不可能去打开这个内存文件。这个问题可以通过改写DACL实现,不过比较复杂。
new021
2004-05-09
打赏
举报
回复
可以使用IPC中的共享内存的方法
lide19
2004-05-08
打赏
举报
回复
那么这么说来: 共享对象 几乎就不可能了。我只能把数据按照一维数组或指针分段存入。然后程序建立的对象封装对共享区域的指针的操作。是这样吗?
此外,还有一个问题,如果从共享区域读出,每次我都要从头开始读还是可以从中间任意指针位置随意读取? 我想我应该可以保存这些分段区域的指针位置吧,然后我就可以直接从该指针向后读了。对吗?
halk
2004-05-08
打赏
举报
回复
CreateFileMapping得到映射对象句柄后,
MapViewOfFile得到共享区域的指针,读/写就用这个指针就行了。strcpy memcpy什么的都可以使用。
写入对象似乎不妥。对象中的方法对应的代码,在不同的进程中可能处在不同的区域,即便共享了对象也不一定都能正确调用其中的方法。
lide19
2004-05-08
打赏
举报
回复
请问二位大侠你们向内存映射文件写入和读取一般用什么函数? 我想把几个类的对象写入,然后另外一个程序调用读出。这样频繁读取是否会效率慢。不能直接就在内存映射文件内存中直接创建对象吗?
NowCan
2004-05-08
打赏
举报
回复
没有2个实例的问题。
一个程序用CreateFileMapping创建FileMapping,用MapViewOfFile得到内存地址,另一个程序再用这个函数时就能得到前面创建的FileMapping了。然后用MapViewOfFile就可以得到内存地址了。
guoj1997
2004-05-08
打赏
举报
回复
使用内存映射文件
CreateFile
CreateFileMapping
MapViewOfFile
《ACM竞赛-C/C++入门》 C语言-13
清华大学尹成老师、微软全球具有价值专家,手把手从基础教学到深入探讨,教你成为信息学竞赛高手,让你知识点一通百通拿到竞赛
高分
,为编程开发打下坚实的基础! 从零基础到在蓝桥杯、NOIP、ACM竞赛、信息学...
软考中级网络工程师学习笔记(知识点汇总)普通版
(1)
数据
通信******两个实体
间
的
数据
传输和交换。 2. 1
数据
通信技术 2.1.1 模拟
数据
通信和数字
数据
通信 (2) 模拟
数据
******在某个区
间
为连续的值的
数据
(3) 数字
数据
******在某个区
间
为离散的值的
数据
...
WEB开发文档2 总结
//blog.donews.com/lvjiyong/archive/2006/06/29/931071.aspx怎样将后台生成的在
内存
中的图象显示到客户端Microsoft IE WebControls下载地址如何在DATAGRID中使用JAVASCRIPT脚本控制DataGrid中连接到下一页显示
数据
...
PostGIS 笔记
PostGIS 是一种广泛使用的空
间
数据
库,支持使用它存储和检索
数据
的第三方
程序
的数量也在增加。支持 PostGIS 的
程序
包括服务器和桌面系统上的开源软件和专有软件。
【第54篇】剪枝算法:通过网络瘦身学习高效卷积网络
2)减少运行时
内存
占用;3)在不影响精度的前提下,降低计算操作的数量。这是通过在网络中以一种简单但有效的方式强制通道级稀疏性来实现的。与许多现有的方法不同,所提出的方法直接适用于现代CNN体系结构,为训练过程...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章