来自一个 "傻瓜 "的问题 - 页 75 1...686970717273747576777879808182...277 新评论 Victor Kirillin 2011.10.06 14:57 #741 kirill-demo: 我已经在Wizard中创建了我的专家顾问。我对mql不是很了解。能否请你以信封为例解释一下该怎么做?CSignalEnvelopes类 没有这样的市场模型。结论:我们需要改进这个班级(或编写我们自己的班级)。 Andrey Dik 2011.10.06 19:59 #742 在MT4和MT5中,从dll中调用函数 的区别是什么?我编译了dll,它在MT5中运行良好,但在MT4中却出现了错误。 2011.10.06 23:00:34 Solaris执行器EURUSDm,M1:无法从dll 'Solaris.dll'调用函数'InfoOfTrading'(错误127)。 Документация по MQL5: Основы языка / Функции / Вызов функции www.mql5.com Основы языка / Функции / Вызов функции - Документация по MQL5 Renat Fatkhullin 2011.10.06 21:23 #743 joo: 在MT4和MT5中从dll中调用函数 有什么区别?我编译了一个dll,在MT5中运行良好,但在MT4中却产生了一个错误。 2011.10.06 23:00:34 Solaris执行器EURUSDm,M1:无法从dll 'Solaris.dll'调用函数'InfoOfTrading'(错误127)。请给我一个函数原型的描述。很可能你在MT5中使用了_stdcall的设计。MT5有一个更灵活的DLL函数名链接机制--它自动支持_stdcall(更先进的名称装饰)和_cdecl(老的经典方法)。MetaTrader 4只支持_cdecl调用。你读过"如何在10分钟内为MQL5编写DLL并分享数据"这篇文章吗?"它详细解释了如何调用DLL函数。 Andrey Dik 2011.10.06 21:48 #744 Renat:请提供函数原型的描述。最有可能的是,对于MT5,你使用了_stdcall设计。MT5有一个更灵活的DLL函数名链接机制--它自动支持_stdcall(更先进的名称装饰)和_cdecl(老的经典方法)。MetaTrader 4只支持_cdecl调用。阅读文章"如何在10分钟内为MQL5编写一个DLL并交换数据?"--有一个关于DLL函数调用的详细描述。试图以这种方式宣布。_DLLAPI void _cdecl InfoOfTrading(int &ou_ParamCountALl, int &ou_BarsRequired)就这样。_DLLAPI void InfoOfTrading(int &ou_ParamCountALl, int &ou_BarsRequired)而不是旧的。_DLLAPI void __stdcall InfoOfTrading(int &ou_ParamCountALl, int &ou_BarsRequired)但现在出现了不同的错误。 2011.10.07 01:35:05 Solaris执行器EURUSDm,M1: 函数'InfoOfTrading'从dll'Solaris.dll'调用时出现严重错误我读了这篇文章。在项目的设置中,明确规定了调用的方式。而在MT5中仍能正常工作,没有错误。 kirill-demo 2011.10.07 05:54 #745 tol64: 一般来说,帮助中对信号的描述与你所需要的方式完全一致。你可以在这里 看到它。图中显示了CCI指标的设置。因此,最有可能的是,你的专家顾问不会只基于信封指标的信号。还有CCI。对,很抱歉。我贴错了照片。但这并不能改变事情的真相。这里有一张来自EA的照片,只针对信封。我应该怎么做? 我应该怎么解决? Andrey Dik 2011.10.07 08:27 #746 顺便说一下,在标准MT4交付的surs例子中,调用是通过__stdcall进行的。MT4_EXPFUNC double __stdcall GetDoubleValue(const double dpar) { printf("GetDoubleValue takes %.8lf\n",dpar); return(dpar); }并且工作正常。 kirill-demo 2011.10.07 19:38 #747 谁来给我解释一下!!!。 Renat Fatkhullin 2011.10.08 10:43 #748 joo:顺便说一下,在标准MT4的surs例子中,通过__stdcall调用。并且工作正常。在MT4的例子中。#define MT4_EXPFUNC __declspec(dllexport) MT4_EXPFUNC char* __stdcall GetStringValue(char *spar) и имена экспортируемых функций явно описываются через *.def файл: LIBRARY ExpertSample EXPORTS GetIntValue GetDoubleValue GetStringValue GetArrayItemValue SetArrayItemValue GetRatesItemValue SortStringArray ProcessStringArray stdcall似乎被支持。我不确定通过&来描述四的参数传递 是否正确。 Документация по MQL5: Основы языка / Функции / Передача параметров www.mql5.com Основы языка / Функции / Передача параметров - Документация по MQL5 Questions from a "dummy" 使用 Skype 发送来自 Expert Andrey Dik 2011.10.08 12:24 #749 Renat:MT4的例子。#define MT4_EXPFUNC __declspec(dllexport) MT4_EXPFUNC char* __stdcall GetStringValue(char *spar) и имена экспортируемых функций явно описываются через *.def файл: LIBRARY ExpertSample EXPORTS GetIntValue GetDoubleValue GetStringValue GetArrayItemValue SetArrayItemValue GetRatesItemValue SortStringArray ProcessStringArray stdcall原来是被支持的。我不确定通过&来描述参数传递 的四种方式是否正确。在两年的时间里,我完全没有学过4。:)1.事实证明,以引用方式传递的变量不能写入dll中。你必须使用一个数组来实现这一点。2.而且必须使用*.def文件。这里实际上是我发现的使用4和5的dll的两个不同之处,可能还有更多。 AUser 2011.10.08 15:37 #750 朋友们,如果这种问题已经很烦人了,请告诉我如何正确填写参数>邮件标签?我在mail.ru上有邮件,能不能用?我不知道那里的服务器地址是什么......如果不合适,在哪里注册一个合适的?我想做电子邮件通知... 1...686970717273747576777879808182...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我已经在Wizard中创建了我的专家顾问。我对mql不是很了解。能否请你以信封为例解释一下该怎么做?
CSignalEnvelopes类 没有这样的市场模型。
结论:我们需要改进这个班级(或编写我们自己的班级)。
2011.10.06 23:00:34 Solaris执行器EURUSDm,M1:无法从dll 'Solaris.dll'调用函数'InfoOfTrading'(错误127)。
在MT4和MT5中从dll中调用函数 有什么区别?我编译了一个dll,在MT5中运行良好,但在MT4中却产生了一个错误。
2011.10.06 23:00:34 Solaris执行器EURUSDm,M1:无法从dll 'Solaris.dll'调用函数'InfoOfTrading'(错误127)。
请给我一个函数原型的描述。很可能你在MT5中使用了_stdcall的设计。
MT5有一个更灵活的DLL函数名链接机制--它自动支持_stdcall(更先进的名称装饰)和_cdecl(老的经典方法)。MetaTrader 4只支持_cdecl调用。
你读过"如何在10分钟内为MQL5编写DLL并分享数据"这篇文章吗?"它详细解释了如何调用DLL函数。
请提供函数原型的描述。最有可能的是,对于MT5,你使用了_stdcall设计。
MT5有一个更灵活的DLL函数名链接机制--它自动支持_stdcall(更先进的名称装饰)和_cdecl(老的经典方法)。MetaTrader 4只支持_cdecl调用。
阅读文章"如何在10分钟内为MQL5编写一个DLL并交换数据?"--有一个关于DLL函数调用的详细描述。
试图以这种方式宣布。
就这样。
而不是旧的。
但现在出现了不同的错误。
2011.10.07 01:35:05 Solaris执行器EURUSDm,M1: 函数'InfoOfTrading'从dll'Solaris.dll'调用时出现严重错误我读了这篇文章。
在项目的设置中,明确规定了调用的方式。
而在MT5中仍能正常工作,没有错误。
一般来说,帮助中对信号的描述与你所需要的方式完全一致。你可以在这里 看到它。图中显示了CCI指标的设置。因此,最有可能的是,你的专家顾问不会只基于信封指标的信号。还有CCI。
对,很抱歉。我贴错了照片。但这并不能改变事情的真相。这里有一张来自EA的照片,只针对信封。
我应该怎么做? 我应该怎么解决?
顺便说一下,在标准MT4交付的surs例子中,调用是通过__stdcall进行的。
并且工作正常。
顺便说一下,在标准MT4的surs例子中,通过__stdcall调用。
并且工作正常。
在MT4的例子中。
MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)
и имена экспортируемых функций явно описываются через *.def файл:
LIBRARY ExpertSample
EXPORTS GetIntValue
GetDoubleValue
GetStringValue
GetArrayItemValue
SetArrayItemValue
GetRatesItemValue
SortStringArray
ProcessStringArray
stdcall似乎被支持。我不确定通过&来描述四的参数传递 是否正确。
MT4的例子。
MT4_EXPFUNC char* __stdcall GetStringValue(char *spar)
и имена экспортируемых функций явно описываются через *.def файл:
LIBRARY ExpertSample
EXPORTS GetIntValue
GetDoubleValue
GetStringValue
GetArrayItemValue
SetArrayItemValue
GetRatesItemValue
SortStringArray
ProcessStringArray
stdcall原来是被支持的。我不确定通过&来描述参数传递 的四种方式是否正确。
在两年的时间里,我完全没有学过4。:)
1.事实证明,以引用方式传递的变量不能写入dll中。你必须使用一个数组来实现这一点。
2.而且必须使用*.def文件。
这里实际上是我发现的使用4和5的dll的两个不同之处,可能还有更多。