Har*_*ish 1 c++ memory windows windows-mobile shared-memory
我正在尝试找到一种为不同进程之间共享的内存映射文件动态分配内存的方法。我的设计如下:在Windows Mobile中,我正在编写一个显示线程,该线程使用共享内存处理来自不同进程的显示部分。计划是创建一个与屏幕大小相等的内存映射文件,例如:如果屏幕大小为640 X 480,那么我创建一个640 X 480 X 4的BYTE数组,然后与另一个进程共享该数组其他过程将更新内存中的hDC显示,然后将更新发送到显示线程以更新设备上的显示。这可以正常工作,但一个约束是在编译时分配内存,因为我们无法动态分配内存
(http://msdn.microsoft.com/zh-cn/library/aa366542%28v=vs.85%29.aspx)。当您不想更改文件的大小时(例如,映射只读文件时),请调用CreateFileMapping并为dwMaximumSizeHigh和dwMaximumSizeLow都指定零。这样做会创建一个与文件大小完全相同的文件映射对象。否则,您必须计算或估计完成文件的大小,因为文件映射对象的大小是静态的。一旦创建,它们的大小就不能增加或减小。
提前致谢
不要使用文件,将这些数据写入磁盘没有任何价值。将INVALID_HANDLE_VALUE传递给CreateFileMapping,以便内存由分页文件支持,并且您可以设置所需的任何大小。