[英]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.