cpp dll中的共享内存

时间:2014-11-14 11:41:25

标签: c++ boost shared-memory

软MetaTrader 5.它的交易终端。它"指标" windows是一些类似cpp的程序。他们可以加载纯cpp dll。每个"指标"在单独的线程中工作。 我需要创建共享内存的东西,可以从每个"指示符"访问。此外,对于共享内存,可以在每个指标中加载它必须特别是dll。

我找到了有关增强进程间的信息。

我是使用提升和多线程的新手。 所以我想我是对的吗?

  1. 使用共享内存功能和界面创建dll以从指示器访问它。
  2. 在几个"指示符"。
  3. 中加载dll
  4. 从几个"指标访问它"实时?
  5. 你还可以提出其他建议吗?

1 个答案:

答案 0 :(得分:0)

共享库中的全局变量不会在库用户进程之间共享。为每个加载库的进程创建该数据段,实际只共享只读代码段。

您需要将库用于共享内存,例如boost::interprocess shared_memory_objectPOSIX Shared Memory或Qt QSharedMemory。但是,如果您需要进程间通信。

除了使用互斥锁来防止数据争用之外,为了让多个线程在同一进程中访问共享内存,您不需要做任何特别的事情。