Originally Posted by
;
您無法直接在DLL中創建共享內存空間。有幾種方法可以讓DLL相互通信。這取決於你是否想要雙向com,以及他們需要交談的頻率。最簡單的方法包括:1)在DLL中打開套接字,通過TCP或其他協議進行通信。 (可能最簡單,如果MT4應用程序位於局域網上的不同計算機上或超過inet)2)有一個MT4使用創建“輔助”窗口(可見或不可見)的DLL,然後直接從MT4使用SendMessage實現WM_COPYDATA消息或來自另一個DLL。如果這超出了你的範圍,那麼你可以使用磁盤文件來傳遞數據,如果你沒有過於頻繁地傳輸,你只需要使用輔助文件作為信號量機制。再次,它真的取決於你如何嘗試傳播,但這應該在EA(不是一個indior)內部工作。 (但是你必須使用windows API文件函數,因為據我所知MT4不會在自己的目錄結構之外寫或讀)'Datafile.txt'包含你的數據'app1lock.txt'...虛擬鎖文件' app2lock.txt'...在啟動任何一個MT4應用程序之前的虛擬鎖文件確保沒有文件存在App1 ...如果app2lock.txt不存在{create file app1lock.txt//此時可能兩個應用程序都鎖定了同時等待並再次檢查睡眠(1000);/如果app2lock.txt不存在則等待一秒{createmodifyread'datafile.txt'} else標記我們需要通過刪除文件'app1lock.txt'重做下一次}} App2 ...如果app1lock.txt確實如此不存在{create file app2lock.txt Sleep(1500)如果app1lock.txt不存在{createmodifyread'datafile.txt'} else標誌,用於下次運行刪除文件'app2lock.txt'}