【发布时间】:2012-01-25 08:40:01
【问题描述】:
我想将我的缓存库移动到 DLL 并允许多个应用程序共享使用 GlobalAlloc() 在 DLL 中分配的单个指针。我怎样才能做到这一点,这会导致性能显着下降吗?
【问题讨论】:
-
您希望内存在所有使用 DLL 的独立进程之间直接共享吗?堆 API 不会这样做,因为它们分配每个进程的内存。要在进程之间共享内存,您需要使用Shared Memory using the file mapping APIs(不需要实际文件)。请注意,虽然您将在每个进程中获得相同的内存,但内存最终可能位于不同的地址,因此您将拥有不同的指针值。