讨论 "如何在10分钟内为MQL5编写一个DLL并交换数据"。 - 页 5 123456789101112 新评论 Denis Kirichenko 2010.01.27 12:23 #41 mql5 писал(а) # :1)哪个版本的终端是32位或64位? 2) 哪个版本的dll是32或64位?1)是否有选择?我认为从这里 只能下载X86...2) dll 32 Denis Kirichenko 2010.01.27 12:51 #42 重新安装MT5,结果如下。当启动脚本时, 日志中 出现以下信息 在'MQL5DLLSamples.dll'中无法找到函数 fnCalculateSpeed。为了以防万一,我附上了Dependency Walker 的库的截图。 Slava 2010.01.27 13:23 #43 denkir:重新安装MT5,结果如下。当启动脚本时, 日志中 出现以下信息 在'MQL5DLLSamples.dll'中无法找到函数fnCalculateSpeed。为了以防万一,我附上了Dependency Walker 的库的截图。 重新安装的终端的构建号 是什么? Renat Fatkhullin 2010.01.27 13:57 #44 stringo: 重新安装的终端的构建号 是什么? 显然是旧的,不是最新的240版本。 Denis Kirichenko 2010.01.27 15:23 #45 Renat писал(а) # : 显然是旧的,显然不是最新的240版本。是的,绝对不是最后一个...。升级到240bild后,脚本的第一次运行很正常。我兴奋起来。但随后的运行只导致了崩溃。MT 4正在并行运行。 Denis Kirichenko 2010.01.27 15:32 #46 重新启动后,一切似乎都在工作!这就是我们的工作。:-))注释了函数fnCrashTest(int arr ) 感谢所有帮助过的人! Andrey Dik 2010.02.04 22:02 #47 一般来说,我没有设法将使用dll的计算速度提高2.5倍以上。这显示了MQL5的高速度,对于大多数交易任务来说,除了需要保护代码和需要进行 "繁重 "计算时,没有必要为dll而烦恼。 Renat Fatkhullin 2010.02.07 01:31 #48 joo: 一般来说,我没有设法将使用dll的计算速度提高2.5倍以上。这表明了MQL5的高速度。 对于大多数交易任务来说,没有必要为dll而烦恼,除非有必要保护代码和需要进行 "重 "计算。 MQL5的最终寄存器优化还没有启用--执行速度 仍将严重提高。 Anton 2010.02.21 22:14 #49 雷纳特,感谢你的文章。我认为许多人将不止一次需要它。我有一个与dll有关的附带问题。(终端249,编辑248)。例子我们有一个libra demo.dll,只有一个函数。_DLLAPI void __stdcall demo(char *stream, char *buf){ buf=stream;}我们有一个mql脚本demo.mq5。#property copyright "2010, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #import "demo.dll" void demo(string s1, string &s2); #import void OnStart(){ string a="TEST"; string b; demo(a,b); Print(b); }编译器没有显示任何错误或警告。在终端运行它,得到如下结果在可视化调试中检查时,我还发现demo.dll函数本身的第一个字符,不是一个字符串。问题是有什么问题呢?如何以人性化的方式将字符串从MQL传给dll? Alexander 2010.02.21 23:06 #50 使用wchar_t 而不是 char 123456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1)哪个版本的终端是32位或64位?
2) 哪个版本的dll是32或64位?
1)是否有选择?我认为从这里 只能下载X86...
2) dll 32
重新安装MT5,结果如下。当启动脚本时, 日志中 出现以下信息 在'MQL5DLLSamples.dll'中无法找到函数 fnCalculateSpeed。
为了以防万一,我附上了Dependency Walker 的库的截图。
重新安装MT5,结果如下。当启动脚本时, 日志中 出现以下信息 在'MQL5DLLSamples.dll'中无法找到函数fnCalculateSpeed。
为了以防万一,我附上了Dependency Walker 的库的截图。
重新安装的终端的构建号 是什么?
显然是旧的,显然不是最新的240版本。
是的,绝对不是最后一个...。
升级到240bild后,脚本的第一次运行很正常。我兴奋起来。但随后的运行只导致了崩溃。MT 4正在并行运行。
重新启动后,一切似乎都在工作!这就是我们的工作。:-))
注释了函数fnCrashTest(int arr )
感谢所有帮助过的人!
一般来说,我没有设法将使用dll的计算速度提高2.5倍以上。这表明了MQL5的高速度。 对于大多数交易任务来说,没有必要为dll而烦恼,除非有必要保护代码和需要进行 "重 "计算。
雷纳特,感谢你的文章。我认为许多人将不止一次需要它。我有一个与dll有关的附带问题。(终端249,编辑248)。
例子
我们有一个libra demo.dll,只有一个函数。
我们有一个mql脚本demo.mq5。
编译器没有显示任何错误或警告。
在终端运行它,得到如下结果
在可视化调试中检查时,我还发现demo.dll函数本身的第一个字符,不是一个字符串。
问题是
有什么问题呢?如何以人性化的方式将字符串从MQL传给dll?