讨论 "如何在10分钟内为MQL5编写一个DLL并交换数据"。 - 页 8 123456789101112 新评论 Nikolai Karetnikov 2011.04.06 11:30 #71 avoitenko:DLL函数声明调用 一个DLL函数 正是如此!这正是我所做的。谢谢你! Killa 2011.11.30 23:26 #72 在上一个例子中,你也对dll做了一些修改,对吗?这就是我的意思。bool ExcelSetTextCell(int X,int Y, uchar& Value[]); Killa 2011.11.30 23:34 #73 如果不是太麻烦的话,你能不能也给我一个提示。有一个dll,一个文本值被传递给它,输出是一个字符串类型 的数字。比如说像这样。#import "n1.dll" string fData (string a1); #import .... string znak = fData ("a"); // При значении "a" переменная znak будет равна например "172371", далее я значение znak конвертирую в int // Так всё было в МТ4.由于缺乏知识,我无法修复dll。请告知如何制作一个正确的代码来传递给dll,以及如何正确接收。我有一种感觉,我的程序包在MT5中无法工作。提前感谢您的帮助。 Документация по MQL5: Основы языка / Типы данных / Тип string www.mql5.com Основы языка / Типы данных / Тип string - Документация по MQL5 Ilyas 2011.12.01 10:59 #74 Killa:如果不是太麻烦的话,你能不能也给我一个提示。有一个dll,一个文本值被传递给它,输出是一个字符串类型 的数字。 由于缺乏知识,我无法修复Dll。请告知如何正确编写代码提交给dll,以及如何正确得到它。因为我的dll现在不能在MT5中工作。提前感谢您的帮助。我重新检查了从DLL返回的字符串的工作,发现在x64下有错误(在一些优化后出现)。修复将包括在下一个版本中。如果你是在x64环境下工作,请等待构建版本。 我唯一可以补充的是,请记住,MQL5可以使用Unicode字符串。 Killa 2011.12.01 15:11 #75 简单地说,你必须重写dll... Alexey 2012.01.14 17:31 #76 我想感受一下dlls的力量,他们谈了很多。问题很简单,从哪里开始。下载什么,读什么,去哪个论坛,请说5-6点。在这一生中,很多事情都取决于最初的彭德怀。 ASLog2012 2012.03.16 11:49 #77 Renat:发表文章:如何在10分钟内为MQL5编写一个DLL并交换数据?:作者: Renat Fatkhullin谢谢你的文章。我已经使用了它。这个提示非常好。但是!我花了10分钟才搞清楚如何在VS2010中正确设置DLL路径。结果是这样的。C:\Users\пп\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries我建议从MetaEditor复制路径。或者在环境中指定你自己的路径(没有检查)。还有一件事,我们如何处理多线程问题? RomFil 2013.02.10 09:07 #78 谢谢你的文章。完整地重复了一遍,但我想说一下我在实施过程中遇到的问题--这些看似很小的事情差点让我放弃。我想澄清的是(使用VS2010 + MT5(32位)build 756 + Win 7 Maximum x64)。我试着在x64平台上连接它,结果失败了--根据我的理解,原因是隐含地依赖从标准 Windows库 创建的DLL,由于某种原因加载了x86库--这不是MQL5的问题,但仍然值得说一下。我通过安装MT5 32bit摆脱了这种情况 - 它是通过命令行 "Installer folder"\mt5setup.exe /32完成的。它将使用x86 DLLs。所以我建议只使用x86,至少在开始时。MT5以任何方式都找不到一个插件DLL。文章说要把DLL放在终端的Libraries文件夹里,但终端还是看不到它。解决办法如下:只要在系统变量中指定位置,DLL将被存储在哪里并不重要。如何做到这一点将有助于谷歌。否则,这不是一篇坏文章...尊重! ANG3110 2013.12.25 14:46 #79 在64位的MT5上,这个例子不起作用。终端报告说它是32位的DLL,没有连接它。但在Win32下(如本例和其他所有例子--如Delphi)--所有DLL都是32位的。像以前的帖子一样,我必须卸载64位版本的终端,然后安装32位版本的。我还需要知道如何做,因为64位版本是强制安装的。事实证明,MT5 64位是一个死的终端,我不知道为什么它被释放。亲爱的开发者,如果可能的话,请使32位DLL与МТ5 64位连接成为可能。如果这在技术上是不可能的或困难的,就写上这个版本将不能与32位DLL一起工作的隐患,用户会受到影响,不能理解是什么问题。并公开写道,文件夹Libraries不在终端本身的目录中,而且知道在哪里,没有经验就找不到,甚至不要尝试。顺便说一下,在这个秘密的地方有所有的指标和专家,所以安装MT5你可以忘记他们 - 如果你不知道这一切是在一个隐藏的文件夹C:\Users\nAppData\Roaming......或者用户认为他在安装一个写得很好的程序,这就是作弊。 Renat Fatkhullin 2013.12.25 16:14 #80 你应该提高你的技术水平。对于64位的程序,你需要64位的库,你没有办法合理地连接32位的库。要安装32位版本,必须用/32开关运行安装程序。我将重写文章,并加入早已在MetaEditor和MT4、MT5平台上实现的酷炫功能。许多开发者并不了解新的功能。 123456789101112 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
DLL函数声明
调用 一个DLL函数在上一个例子中,你也对dll做了一些修改,对吗?
这就是我的意思。
如果不是太麻烦的话,你能不能也给我一个提示。有一个dll,一个文本值被传递给它,输出是一个字符串类型 的数字。
比如说像这样。
由于缺乏知识,我无法修复dll。请告知如何制作一个正确的代码来传递给dll,以及如何正确接收。我有一种感觉,我的程序包在MT5中无法工作。
提前感谢您的帮助。
如果不是太麻烦的话,你能不能也给我一个提示。有一个dll,一个文本值被传递给它,输出是一个字符串类型 的数字。
由于缺乏知识,我无法修复Dll。请告知如何正确编写代码提交给dll,以及如何正确得到它。因为我的dll现在不能在MT5中工作。提前感谢您的帮助。
我重新检查了从DLL返回的字符串的工作,发现在x64下有错误(在一些优化后出现)。修复将包括在下一个版本中。
如果你是在x64环境下工作,请等待构建版本。
我唯一可以补充的是,请记住,MQL5可以使用Unicode字符串。
发表文章:如何在10分钟内为MQL5编写一个DLL并交换数据?:
作者: Renat Fatkhullin
谢谢你的文章。我已经使用了它。
这个提示非常好。但是!我花了10分钟才搞清楚如何在VS2010中正确设置DLL路径。
结果是这样的。
C:\Users\пп\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Libraries
我建议从MetaEditor复制路径。
或者在环境中指定你自己的路径(没有检查)。
还有一件事,我们如何处理多线程问题?
谢谢你的文章。完整地重复了一遍,但我想说一下我在实施过程中遇到的问题--这些看似很小的事情差点让我放弃。我想澄清的是(使用VS2010 + MT5(32位)build 756 + Win 7 Maximum x64)。
否则,这不是一篇坏文章...尊重!
在64位的MT5上,这个例子不起作用。终端报告说它是32位的DLL,没有连接它。但在Win32下(如本例和其他所有例子--如Delphi)--所有DLL都是32位的。像以前的帖子一样,我必须卸载64位版本的终端,然后安装32位版本的。我还需要知道如何做,因为64位版本是强制安装的。事实证明,MT5 64位是一个死的终端,我不知道为什么它被释放。亲爱的开发者,如果可能的话,请使32位DLL与МТ5 64位连接成为可能。
如果这在技术上是不可能的或困难的,就写上这个版本将不能与32位DLL一起工作的隐患,用户会受到影响,不能理解是什么问题。并公开写道,文件夹Libraries不在终端本身的目录中,而且知道在哪里,没有经验就找不到,甚至不要尝试。顺便说一下,在这个秘密的地方有所有的指标和专家,所以安装MT5你可以忘记他们 - 如果你不知道这一切是在一个隐藏的文件夹C:\Users\nAppData\Roaming......或者用户认为他在安装一个写得很好的程序,这就是作弊。
你应该提高你的技术水平。
对于64位的程序,你需要64位的库,你没有办法合理地连接32位的库。要安装32位版本,必须用/32开关运行安装程序。
我将重写文章,并加入早已在MetaEditor和MT4、MT5平台上实现的酷炫功能。许多开发者并不了解新的功能。