peakzhang 发表于 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;
是头文件加载有问题吗?
期待中......
万分感谢~

peakzhang 发表于 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上面,要用别的机制。

tiger456 发表于 2009-8-11 02:03:42

尽管替换了ACE_MMAP_MEMORY_POOL
但是那个空锁似乎没有别的东西好替换呀
页: [1]
查看完整版本: 关于"共享内存"的,没有编译过.