[英]Access .net DLL from Java
我是java
和DLL-s的新手
我需要從java
訪問DLL的方法。 所以對我很輕松。
我嘗試過使用JNA來訪問DLL,這就是我所做的。
import com.sun.jna.Library;
public class mapper {
public interface mtApi extends Library {
public boolean IsStopped();
}
public static void main(String []args){
mtApi lib = (mtApi) Native.loadLibrary("MtApi", mtApi.class);
boolean test = lib.IsStopped();
System.out.println(test);
}
}
當我運行代碼時,我收到以下錯誤:
Exception in thread "main" java.lang.UnsatisfiedLinkError:
Error looking up function 'IsStopped':
The specified procedure could not be found.
我知道這個錯誤說它無法找到該功能,但我不知道如何修復它。
我正在嘗試使用此API mt4api
這是方法,我試圖訪問MQL4
誰能告訴我我做錯了什么?
我已經看過其他替代品,比如jni4net
,但我也無法做到這一點。
如果有人可以將我鏈接到一個教程,告訴我如何設置它,或者知道如何,我會很高興。
雖然你的OP被引導到如何將java
調用.NET DLL函數,但讓我勾勒出一個更加安全的解決方案 。
使用基於AI / ML回歸的外匯交易預測器,我在同一片森林里狩獵。 在過去大約12年中發現的最佳解決方案,花了大約幾百人*多年的經驗,按以下方式設置:
Host A
執行交易:運行MetaTrader Terminal 4,包括Script和EA --- 分布式處理系統使用ZeroMQ
低延遲消息/信令框架 (需要大約幾十微秒)進行通信
Host B
對交易工具執行預測的AI / ML處理(大約幾百微秒適用)
Cluster C
執行連續的AI / ML預測器重新訓練和HyperParameterSPACE模型選擇(確實需要很多CPU小時,連續模型自適應過程全天候運行)
使用ZeroMQ
信令/消息傳遞層具有端口和/或綁定,可用於大多數主流和許多小眾編程語言,包括java
。
雖然系統集成和測試的努力是巨大的,但API規范對於規范爬行總是危險的。
這就是說,在MT4語言規范的靜默更改之后,添加了無數人*月的調試,這些規范會破壞以前的工具+庫。 為什么? 想象一下。 前段時間, MQL4
停止為MQL4
,並以名稱New - MQL4
默默地轉向MQL5
。 在編譯中的其他變化中,棺材中有許多小釘和大釘 - string
令人驚訝地不再是一個string
並被隱藏為內部struct
- 人們可以猜出所有DLL調用會導致什么。
所以,要注意API蠕變。
沒有。
通過明智的消息布局設計,MetaTrader Terminal 4行為沒有任何不利影響,所有邏輯(包括策略決策)都被置於這個爬行平台之外。
可行的。 快速而聰明。 如果您的預算允許,也可以使用遠程GPU集群處理。
是的,它確實。
如果有人依靠內置的策略測試程序,那么分布式處理模型仍然適用於那里。 性能取決於首選的建模風格,整整一年,逐個滴答模擬,相當復雜的AI / ML組件在常見的COTS台式PC系統上花了幾天時間(經過多年的定量研發,經過多年的研發,我們做到了根本不在內部使用Strategy Tester,但請求是批量測試y / y tick-data,因此可以在這里進行評論)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.