2014-11-14 188 views
-1

Soft MetaTrader 5.它是交易终端。这是“指标”窗口是小cpp样程序。他们可以加载纯cpp dll。每个“指标”在单独的线程中工作。 我需要创建可以从每个“指标”访问的共享内存。对于共享内存也可以加载在每个指标,它必须在特定的DLL。共享内存的东西在cpp dll

我找到了关于boost进程的信息。

我是newbee的助推和多线程。 所以我想知道我是对的吗?

  1. 创建具有共享内存功能和界面的dll从指示器访问它。
  2. 在几个“指标”中加载dll。
  3. 从几个“指标”实时访问它?

你还可以建议其他方式吗?

回答

0

共享库中的全局变量不通过库用户进程共享。该数据段是为加载库的每个进程创建的,只有只读代码段实际上是共享的。

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

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