2016-09-20 84 views

回答

0

可以與任何類型的DLL的接口,MQL4文檔狀態的謹慎:

傳遞參數
簡單類型的所有參數由值傳遞,除非它被明確地表示,他們是通過引用傳遞。當一個字符串被傳遞時,複製字符串的緩衝區地址被傳遞;如果字符串是通過引用傳遞的,則不復制該字符串的緩衝區的地址將傳遞給從DLL導入的函數。

結構包含動態數組[],其它複雜結構,以及靜態動態陣列的[] 枚舉 erated對象不能作爲參數傳遞給導入的函數

將數組傳遞給DLL時,數據緩衝區的開始地址總是被傳遞(不管AS_SERIES標誌)。 DLL中的函數對AS_SERIES標誌一無所知,傳遞的數組是一個未定義長度的靜態數組;應該使用附加參數來指定數組大小。

更多的小故障適用...那麼如何使它工作?

也許是一種直接的,異構的多方分佈式處理,它比函數調用的通信結果要比獨立於維護DLL導入函數API更改的所有惡夢都要獨立,這是一種更安全的方法。使用這種方法在過去的幾年,因爲不是有沒有的問題 - MQL4.56789string s表示,抓住保持string -s,默默地開始成爲struct -s等

值得知道關於。

Anyway, welcome and enjoy the Wild Worlds of MQL4 -- may enjoy to click and read other posts on issues in MQL4/DLL integration and/or signalling/messaging in MQL4 domains. Feel free to ask more

+0

是的,他們都在談論傳遞參數,但沒有得到有關結構的返回值...我知道了謹慎採取有關導入DLL(我實際使用的葡萄酒和我執行的dll代碼原生地感謝WineLib使用unix套接字作爲通信點......)我猜想返回結構體沒有這樣的功能,並且必須複製請求......幸運的是,開銷不應該那麼大。 –

+0

如何不依賴於MQL4側面代碼語法約束和使用智能ZeroMQ多部分消息(可用於幾乎所有最近使用的語言+主流遺產的包裝器),並儘可能少地解碼和解析任何其他種類的類似於結構的表示掩碼? – user3666197

+0

據我所知,Zmq是一個便攜式消息庫,確實很有趣,但是在看了代碼之後,它並沒有做比確保消息等原子性更多的東西,所以就我而言,它是已經工作的「易」部分;) –

相關問題