2014-11-14 185 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。但是,如果您需要進程間通信。

除了使用互斥鎖來防止數據競爭外,爲了讓多個線程在同一進程中訪問共享內存,沒有什麼特別的事情需要做。