有沒有辦法從MQL4中的導入函數中返回一個結構體,而不必將它作爲參數傳遞並製作一個memcpy?如何在MQL4中從導入的DLL函數中返回一個結構體?
1
A
回答
0
可以與任何類型的DLL的接口,MQL4文檔狀態的謹慎:
傳遞參數
簡單類型的所有參數由值傳遞,除非它被明確地表示,他們是通過引用傳遞。當一個字符串被傳遞時,複製字符串的緩衝區地址被傳遞;如果字符串是通過引用傳遞的,則不復制該字符串的緩衝區的地址將傳遞給從DLL導入的函數。
結構包含動態數組[],串,類,其它複雜結構,以及靜態或動態陣列的[] 枚舉 erated對象 ,不能作爲參數傳遞給導入的函數。
將數組傳遞給DLL時,數據緩衝區的開始地址總是被傳遞(不管AS_SERIES
標誌)。 DLL中的函數對AS_SERIES
標誌一無所知,傳遞的數組是一個未定義長度的靜態數組;應該使用附加參數來指定數組大小。
更多的小故障適用...那麼如何使它工作?
也許是一種直接的,異構的多方分佈式處理,它比函數調用的通信結果要比獨立於維護DLL導入函數API更改的所有惡夢都要獨立,這是一種更安全的方法。使用這種方法在過去的幾年,因爲不是有沒有的問題新 - MQL4.56789
string
s表示,抓住保持string
-s,默默地開始成爲struct
-s等
值得知道關於。
相關問題
- 1. 從函數中返回一個字段,返回一個結構體
- 2. 如何從函數中的數組返回結構體? (指針)
- 3. 從導入的DLL調用Metatrader MQL4/MQL5函數
- 4. 從函數返回一個tm *結構體的數組
- 5. 如何從SystemVerilog中的某個函數返回一個動態結構數組
- 6. 如何在一個getter函數中返回一個類的結構數組
- 7. 如何在C中導入DLL函數?
- 8. 誤差函數返回一個結構
- 9. 如何從C++中的函數返回結構
- 10. 在函數中返回由serde_json創建的結構體
- 11. 如何使函數返回一個結構指針在c + +
- 12. 在C#中調用C dll函數,結構體和回調函數
- 13. 從stdcall dll函數返回結構是否安全?
- 14. 返回一個結構的具體值
- 15. 在C#中,如何調用一個返回包含字符串指針的非託管結構的DLL函數?
- 16. 如何在RubyFFI中指定一個結構作爲函數的返回值?
- 17. 從函數返回結構的麻煩
- 18. 如何在輸入時返回構造函數中的參數
- 19. 如何在dll中從異步函數返回值
- 20. 從lib中導入函數。/dll文件
- 21. 從.net DLL返回結構(C#)
- 22. 如何在smali函數中返回一個靜態結果
- 23. System.EntryPointNotFoundException從DLL導入函數
- 24. 如何保持函數返回一個指向結構
- 25. 如何在函數內的node.js中返回導入的模塊?
- 26. 在MQL4中從接收到的結構中分配
- 27. 在C++中如何從函數返回一個對象數組?
- 28. 如何在函數內部做一個「返回」結束函數?
- 29. Dllimport函數返回結構
- 30. 結構返回函數
是的,他們都在談論傳遞參數,但沒有得到有關結構的返回值...我知道了謹慎採取有關導入DLL(我實際使用的葡萄酒和我執行的dll代碼原生地感謝WineLib使用unix套接字作爲通信點......)我猜想返回結構體沒有這樣的功能,並且必須複製請求......幸運的是,開銷不應該那麼大。 –
如何不依賴於MQL4側面代碼語法約束和使用智能ZeroMQ多部分消息(可用於幾乎所有最近使用的語言+主流遺產的包裝器),並儘可能少地解碼和解析任何其他種類的類似於結構的表示掩碼? – user3666197
據我所知,Zmq是一個便攜式消息庫,確實很有趣,但是在看了代碼之後,它並沒有做比確保消息等原子性更多的東西,所以就我而言,它是已經工作的「易」部分;) –