创建您自己的MetaTrader扩展(dll)。 - 页 5 123456789101112...15 新评论 stace 2009.04.17 10:33 #41 我看你是个大商人。 这不是一个你可以出售你的这种狗屎的论坛。 你到底在DGC OZFX EA中修改了什么? firedoji: 只要下载所有的外汇电子书,看看里面的说明。我从那里得到了200多本电子书和一些EA...那里的所有EA都是经过编辑和修改的...----------------------------------------- 下载所有EA 下载所有指标 下载电子书 Patrick 2009.04.18 03:16 #42 prasxz: 有没有可能让MT4 dll连接到网络服务,并通过php脚本显示MT4开仓,这样没有MT4的人就可以从网站上实时看到? 不久前有人发布了一个MQL/MySQL的例子,效果很好,唯一的问题是大多数托管公司不允许远程访问他们的数据库服务器。然而,如果你能完全访问和控制你的服务器,你可以写一个EA,连接到你的数据库,为每个新订单插入数据。然后从您的网站上简单地连接到数据库并读取数据......在我看来,这将是最好的方法。 现在MT4 DLL可以连接到php脚本,但我从未尝试过将信息从EA传递到网站,但我能够成功地以其他方式做到这一点......你必须研究一下windows套接字,以及HTTP_GET/HTTP_POST等函数。 帕特里克 Federico Costalonga 2009.04.18 06:17 #43 Mistigri: 不确定,那个库看起来很熟悉,你是用它来连接网站的吗?你有没有试着用wininet.lib代替?我不认为问题出在def文件上,否则你的dll甚至无法加载和正常工作......。如果你能提供更多的信息(即你在dll中使用的一些代码),也许我可以尝试帮助你。 帕特里克 嗨,Patrick! 我在这里找到了这个库和源代码。 https://www.mql5.com/en/forum/178272 我把我的帖子放在那里,但管理员把它移到了这个主题里...... 谢谢! peco07 2009.04.22 14:00 #44 读取位于互联网上的文件 你好。 我想让EA读取一个文件,这个文件不在本地机器上,而是在互联网上。 FileOpen只在文件位于metatrader目录中时才工作。 我用c#-dll累了,但得到的错误信息是 "不能调用函数"。 有什么简单的方法可以解决这个问题吗? 谢谢 MG_1 2009.04.23 11:33 #45 错误127的解决方法--无法调用函数 错误127的解决方法--无法调用函数 好的。 我昨天晚上终于回来看这个问题了。 这个问题与将错误的def文件或nodef 文件与dll关联有关。 在Visual Studio 2008 Express中是这样解决的 -- 1) 转到项目,属性--或者alt-F7 2) 转到链接器--双击它,你会得到一个下拉列表 3) 选择输入 4) 把模块定义文件改成你给def文件起的名字 确保它有文件的路径和全名--比如.\MyDef.def。 在2008年Express版本中,这不是像专业版本那样自动生成的。 这是主要的罪魁祸首。 可能还有其他链接器/编译器的问题,仍然可能造成问题。 你需要做的是加载Metatrader4中的ExportFunction示例项目。这可以在experts/DllSample文件夹中找到。 现在逐页逐项查看它的属性,凡是写着ExportSample或ExpertSample的地方(或与它的命名惯例有关的任何东西),都要改变你的属性以符合你自己的命名惯例。 我逐项进行,然后检查我是否有127的错误。 我继续得到这个错误,直到正确的模块定义文件被明确说明为一个依赖关系。我并不是说除此之外可能没有其他问题,因为我把所有东西都改成了与样本一致,但是一旦定义文件被明确指出,就解决了问题。 记住,dll必须在lib文件夹中。 你必须在include目录下有一个mqh文件,明确地导入dll,并列出带有参数的函数名称、返回类型等。 然后,在你的指标或专家中,你必须包括头文件。 这样就可以了。 CodersGuru和Mistigri都有很好的例子说明如何做到这一点,但非专业的Express版本没有明确地将def文件作为一个依赖项加入,而这正是我们所有使用Express版本的人遇到的问题的根源。(至少在选择特定的项目时,它没有明确地添加它,以使我们有问题的人被选中)。 见所附图片。 记住,你可能仍然想确保你的编译器和链接器的值与Metatrader附带的出口函数样本的值一致。 注意。 MG 附加的文件: properties.jpg 75 kb Patrick 2009.04.23 12:19 #46 fedecosta: 嗨,Patrick!我在这里找到了这个库和源代码。 https://www.mql5.com/en/forum/178272 我把我的帖子放在那里,但管理员把它移到了这个主题里...... 谢谢! 对不起,我还没有机会看它,我一直很忙,但我没有忘记,我将尝试给你回复。 Peco07。 我想让EA读取一个文件,这个文件不在本地机器上,而是在互联网上。 你有两个选择,写一个C#应用程序,连接到网站,在你的电脑上写一个数据文件,然后从MT4读取,或者写一个C++ dll,连接到网站读取数据 .... 如果你走C#路线,到目前为止,它似乎比DLL路线快得多 ...如果你想写一个C++ DLL,这里有一些代码可以帮助你开始。 MT4 DLL网络连接|Mistigri MG_1: 问题在于将错误的def文件或没有def文件与dll关联。 这就是你如何在Visual Studio 2008 Express中解决这个问题----。 谢谢你的信息!如果你不介意的话,我将在我的网站上复制你帖子的某些部分...... MG_1 2009.04.23 13:25 #47 Mistigri: 谢谢你的信息!如果你不介意的话,我将在我的网站上复制你帖子的某些部分...... 没问题,我知道很多人去那里学习,所以希望它能帮助Express用户和gnu等用户。 -MG Patrick 2009.04.27 13:18 #48 fedecosta: 大家好!我在尝试使用这个库时遇到了一个问题。 我把它们放在metatrader/experts/library里。 我正确定义了.def文件的路径 ...但我的EA在注册表上打印出这个错误:-65495 这到底是什么问题? 最重要的是,如何解决这个问题? 有没有可能是.def文件被破坏了? 提前感谢... 你好,Fedecosta。 试着把def文件直接复制到你的c:/驱动器下......。这对我来说似乎很有效。 请注意,这与DLL编程无关,它是针对这个EA的... 帕特里克 Professor of channel trading 2009.05.02 07:00 #49 Mistigri: 你好,蒂姆。当使用dev-c++时,def文件会自动为你生成,问题是你最终得到的函数名看起来像这样。 EXPORTS _Z11GetSMAArrayP8RateInfoiiPd@16 @ 1 _Z12GetHighValueP8RateInfoii = _Z12GetHighValueP8RateInfoii@12 @ 2 _Z12GetHighValueP8RateInfoii@12 @ 3 _Z13GetCloseValueP8RateInfoii = _Z13GetCloseValueP8RateInfoii@12 @ 4 _Z13GetCloseValueP8RateInfoii@12 @ 5 _Z11GetSMAArrayP8RateInfoiiPd = _Z11GetSMAArrayP8RateInfoiiPd@16 @ 6[/PHP] Now you need to make sure you add the following check around your code [PHP] #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif 附上我为VS2008做的样本文件,但这次是用dev-c++ ... 希望这对您有所帮助 你的意思是说,当写dll文件时。 def文件中的函数 应该在开头加上_z12? 这意味着在.mq4文件中 调用finction: get_max_deviation 然后在.def文件中 转移的函数:_z12get_max_deviation? 函数名称后面的@数字是什么意思? 谢谢 Professor of channel trading 2009.05.02 09:57 #50 Mistigri: 附上我为VS2008做的样本文件,但这次是用dev-c++ ... 希望这对你有帮助 附上的文件 MistigriFX Sample Debug.mq4 (2.1 KB, 15 views) MSFXDEV.zip (8.6 KB, 17 views ) 我已经下载了你的文件,并按图片显示编译了.cpp 但出现了错误 我的编译方法是否有误,如何将其编译成dll?(我是一个C++初学者^^) 附加的文件: dev_dll.jpg 298 kb 123456789101112...15 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这不是一个你可以出售你的这种狗屎的论坛。
你到底在DGC OZFX EA中修改了什么?![](https://c.mql5.com/forextsd/smiles/baring_teeth.png)
只要下载所有的外汇电子书,看看里面的说明。我从那里得到了200多本电子书和一些EA...那里的所有EA都是经过编辑和修改的...
-----------------------------------------
下载所有EA 下载所有指标 下载电子书有没有可能让MT4 dll连接到网络服务,并通过php脚本显示MT4开仓,这样没有MT4的人就可以从网站上实时看到?
不久前有人发布了一个MQL/MySQL的例子,效果很好,唯一的问题是大多数托管公司不允许远程访问他们的数据库服务器。然而,如果你能完全访问和控制你的服务器,你可以写一个EA,连接到你的数据库,为每个新订单插入数据。然后从您的网站上简单地连接到数据库并读取数据......在我看来,这将是最好的方法。
现在MT4 DLL可以连接到php脚本,但我从未尝试过将信息从EA传递到网站,但我能够成功地以其他方式做到这一点......你必须研究一下windows套接字,以及HTTP_GET/HTTP_POST等函数。
帕特里克
不确定,那个库看起来很熟悉,你是用它来连接网站的吗?你有没有试着用wininet.lib代替?
我不认为问题出在def文件上,否则你的dll甚至无法加载和正常工作......。如果你能提供更多的信息(即你在dll中使用的一些代码),也许我可以尝试帮助你。
帕特里克嗨,Patrick!
我在这里找到了这个库和源代码。
https://www.mql5.com/en/forum/178272
我把我的帖子放在那里,但管理员把它移到了这个主题里......
谢谢!![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
读取位于互联网上的文件
你好。
我想让EA读取一个文件,这个文件不在本地机器上,而是在互联网上。
FileOpen只在文件位于metatrader目录中时才工作。
我用c#-dll累了,但得到的错误信息是 "不能调用函数"。
有什么简单的方法可以解决这个问题吗?
谢谢
错误127的解决方法--无法调用函数
错误127的解决方法--无法调用函数
好的。
我昨天晚上终于回来看这个问题了。 这个问题与将错误的def文件或nodef 文件与dll关联有关。
在Visual Studio 2008 Express中是这样解决的 --
1) 转到项目,属性--或者alt-F7
2) 转到链接器--双击它,你会得到一个下拉列表
3) 选择输入
4) 把模块定义文件改成你给def文件起的名字
确保它有文件的路径和全名--比如.\MyDef.def。
在2008年Express版本中,这不是像专业版本那样自动生成的。
这是主要的罪魁祸首。 可能还有其他链接器/编译器的问题,仍然可能造成问题。 你需要做的是加载Metatrader4中的ExportFunction示例项目。这可以在experts/DllSample文件夹中找到。 现在逐页逐项查看它的属性,凡是写着ExportSample或ExpertSample的地方(或与它的命名惯例有关的任何东西),都要改变你的属性以符合你自己的命名惯例。 我逐项进行,然后检查我是否有127的错误。 我继续得到这个错误,直到正确的模块定义文件被明确说明为一个依赖关系。我并不是说除此之外可能没有其他问题,因为我把所有东西都改成了与样本一致,但是一旦定义文件被明确指出,就解决了问题。
记住,dll必须在lib文件夹中。 你必须在include目录下有一个mqh文件,明确地导入dll,并列出带有参数的函数名称、返回类型等。 然后,在你的指标或专家中,你必须包括头文件。 这样就可以了。
CodersGuru和Mistigri都有很好的例子说明如何做到这一点,但非专业的Express版本没有明确地将def文件作为一个依赖项加入,而这正是我们所有使用Express版本的人遇到的问题的根源。(至少在选择特定的项目时,它没有明确地添加它,以使我们有问题的人被选中)。
见所附图片。 记住,你可能仍然想确保你的编译器和链接器的值与Metatrader附带的出口函数样本的值一致。
注意。
MG
嗨,Patrick!
我在这里找到了这个库和源代码。
https://www.mql5.com/en/forum/178272
我把我的帖子放在那里,但管理员把它移到了这个主题里......
谢谢!对不起,我还没有机会看它,我一直很忙,但我没有忘记,我将尝试给你回复。
我想让EA读取一个文件,这个文件不在本地机器上,而是在互联网上。
你有两个选择,写一个C#应用程序,连接到网站,在你的电脑上写一个数据文件,然后从MT4读取,或者写一个C++ dll,连接到网站读取数据 ....
如果你走C#路线,到目前为止,它似乎比DLL路线快得多 ...如果你想写一个C++ DLL,这里有一些代码可以帮助你开始。
MT4 DLL网络连接|Mistigri
问题在于将错误的def文件或没有def文件与dll关联。
这就是你如何在Visual Studio 2008 Express中解决这个问题----。
谢谢你的信息!如果你不介意的话,我将在我的网站上复制你帖子的某些部分......
谢谢你的信息!如果你不介意的话,我将在我的网站上复制你帖子的某些部分......
没问题,我知道很多人去那里学习,所以希望它能帮助Express用户和gnu等用户。
-MG
大家好!
我在尝试使用这个库时遇到了一个问题。
我把它们放在metatrader/experts/library里。
我正确定义了.def文件的路径
...但我的EA在注册表上打印出这个错误:-65495
这到底是什么问题?
最重要的是,如何解决这个问题?
有没有可能是.def文件被破坏了?
提前感谢...你好,Fedecosta。
试着把def文件直接复制到你的c:/驱动器下......。这对我来说似乎很有效。
请注意,这与DLL编程无关,它是针对这个EA的...
帕特里克
你好,蒂姆。
当使用dev-c++时,def文件会自动为你生成,问题是你最终得到的函数名看起来像这样。
_Z11GetSMAArrayP8RateInfoiiPd@16 @ 1
_Z12GetHighValueP8RateInfoii = _Z12GetHighValueP8RateInfoii@12 @ 2
_Z12GetHighValueP8RateInfoii@12 @ 3
_Z13GetCloseValueP8RateInfoii = _Z13GetCloseValueP8RateInfoii@12 @ 4
_Z13GetCloseValueP8RateInfoii@12 @ 5
_Z11GetSMAArrayP8RateInfoiiPd = _Z11GetSMAArrayP8RateInfoiiPd@16 @ 6[/PHP]
Now you need to make sure you add the following check around your code
[PHP]
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
附上我为VS2008做的样本文件,但这次是用dev-c++ ...
希望这对您有所帮助你的意思是说,当写dll文件时。
def文件中的函数 应该在开头加上_z12?
这意味着在.mq4文件中
调用finction: get_max_deviation
然后在.def文件中
转移的函数:_z12get_max_deviation?
函数名称后面的@数字是什么意思?
谢谢
附上我为VS2008做的样本文件,但这次是用dev-c++ ...
希望这对你有帮助![](https://c.mql5.com/forextsd/smiles/smile.png)
附上的文件
MistigriFX Sample Debug.mq4 (2.1 KB, 15 views)
MSFXDEV.zip (8.6 KB, 17 views )
我已经下载了你的文件,并按图片显示编译了.cpp
但出现了错误
我的编译方法是否有误,如何将其编译成dll?(我是一个C++初学者^^)