找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3106|回复: 2

关于"共享内存"的,没有编译过.

[复制链接]
发表于 2007-12-27 23:32:35 | 显示全部楼层 |阅读模式
求助:今天小弟照书上的例子写了个程序,关于"共享内存"的,没有编译过.(这回把工程文件传上去了~)
希望大虾们帮帮忙,急啊.
我自己的分析:
如果将   
typedef ACE_Malloc <ACE_SHARED_MEMORY_POOL, ACE_Null_Mutex> Malloc_Allocator;
换成:
typedef ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_SYNCH_MUTEX> ST_ALLOCATOR;
可以编译过,在运行时达不到"共享内存"的效果.
我怀疑是不是这条语句有问题啊:
typedef ACE_Malloc <ACE_SHARED_MEMORY_POOL, ACE_Null_Mutex> Malloc_Allocator;
是头文件加载有问题吗?
期待中......
万分感谢~
 楼主| 发表于 2007-12-27 23:32:42 | 显示全部楼层
不用测试了,NT系统上不支持。
ACE_SHARED_MEMORY_POOL refers to System V Shared Memory which is not
implemented on NT.  You can use a Memory Mapped file ACE_MMAP_MEMORY_POOL
just fine on NT.

尽管你包含了对应的文件,但是没有宏定义的声明,当然无法启用了。
#include <ace/Shared_Memory_Pool.h>
里面需要定义ACE_LACKS_SYSV_SHMEM

NT上面,要用别的机制。
发表于 2009-8-11 02:03:42 | 显示全部楼层
尽管替换了ACE_MMAP_MEMORY_POOL
但是那个空锁似乎没有别的东西好替换呀
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 23:51 , Processed in 0.013782 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表