错误、漏洞、问题 - 页 1313 1...130613071308130913101311131213131314131513161317131813191320...3184 新评论 TheXpert 2015.05.23 15:44 #13121 Konstantin Karpov: 我怎样才能在编译时确定终端是哪种位模式?TERMINAL_X64 标识符不适合,因为它是为函数设计的。最有可能的是,有些宏在帮助中没有提到,但它们偶尔会以这样或那样的方式出现 :) 唉,他们没有。有一个变量_IsX64,但它在运行时发挥作用。 [删除] 2015.05.23 15:51 #13122 我怎样才能摆脱使用两个dll,一个用于32位终端,一个用于64位终端?保留两个程序的实例并不符合卡西尔原则...顺便问一下,谁有经验,如果你在ME x64中编译代码,它将在32位终端上工作而不出错,或者会有一些代码执行的隐藏功能? [删除] 2015.05.23 16:39 #13123 例如,在32位终端library_x86.dll和64位终端library_x64.dll的库中,有funcTest(...)函数。如果导入 在整个文件中是可见的,那么写这样一个结构是否正确。void CClass::Test(...) { код метода... if(TerminalInfoInteger(TERMINAL_X64)) { #import library_x64.dll library_x64::funcTest(...); #import } else { #import library_x86.dll library_x86::funcTest(...); #import } код метода... } 还是这一招不起作用? TheXpert 2015.05.23 17:34 #13124 Konstantin Karpov: 还是这一招不起作用?据我所知,没有。你可以导入这两个dlls,并根据终端的比特率调用 其中一个的功能。一般来说,按比特率分成两个版本并不是那么妄想的选择。 secret 2015.05.23 20:27 #13125 我采取了一个指标(任何标准集),在专家顾问中调用它。iCustom (NULL, 0, "Momentum", 0, 1);在测试器中运行带有可视化的EA后--一切正常,指标被绘制出来。现在我改变了指标中的一行ExtMomBuffer[i]=close[i]*100/close[i-InpMomPeriod];到这一行。ExtMomBuffer[i]=100;而现在,指标根本没有画出任何东西--甚至连垂直刻度 都没有标记。错误在哪里?MetaTrader 4 build 765。 TheXpert 2015.05.23 20:43 #13126 你需要在窗口内有两个不同的值来使刻度出现?EMNIP。不知道这是否可以被认为是一个错误。 secret 2015.05.23 21:05 #13127 好吧,让我们称其为非常规行为 :)非常感谢你,但我还有一个问题。是的,它是这样工作的。ExtMomBuffer[i]=i%2;这就是它再次停止工作的原因。ExtMomBuffer[0]=i%2;我在MT的旧版本中也能工作,新版本有什么问题? TheXpert 2015.05.23 21:16 #13128 所以在第二个版本中,有一个价值。事实上,我可能是错的。 secret 2015.05.23 21:28 #13129 好吧,你可以这样做,但还是没有用。ExtMomBuffer[0]=cnt++;问题的关键是,试图在EA的每一步写到指标的0条--没有任何作用。 secret 2015.05.23 21:41 #13130 我想我已经找到了可以挖掘的地方。改变了ArraySetAsSeries(ExtMomBuffer,false);到真实,而且有些东西开始显示出来了。我要去买醉了。 1...130613071308130913101311131213131314131513161317131813191320...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我怎样才能在编译时确定终端是哪种位模式?TERMINAL_X64 标识符不适合,因为它是为函数设计的。最有可能的是,有些宏在帮助中没有提到,但它们偶尔会以这样或那样的方式出现 :)
我怎样才能摆脱使用两个dll,一个用于32位终端,一个用于64位终端?保留两个程序的实例并不符合卡西尔原则...
顺便问一下,谁有经验,如果你在ME x64中编译代码,它将在32位终端上工作而不出错,或者会有一些代码执行的隐藏功能?
例如,在32位终端library_x86.dll和64位终端library_x64.dll的库中,有funcTest(...)函数。
如果导入 在整个文件中是可见的,那么写这样一个结构是否正确。
还是这一招不起作用?还是这一招不起作用?
据我所知,没有。你可以导入这两个dlls,并根据终端的比特率调用 其中一个的功能。
一般来说,按比特率分成两个版本并不是那么妄想的选择。
我采取了一个指标(任何标准集),在专家顾问中调用它。
在测试器中运行带有可视化的EA后--一切正常,指标被绘制出来。
现在我改变了指标中的一行
ExtMomBuffer[i]=close[i]*100/close[i-InpMomPeriod];
到这一行。
ExtMomBuffer[i]=100;
而现在,指标根本没有画出任何东西--甚至连垂直刻度 都没有标记。
错误在哪里?MetaTrader 4 build 765。
好吧,让我们称其为非常规行为 :)
非常感谢你,但我还有一个问题。是的,它是这样工作的。
ExtMomBuffer[i]=i%2;
这就是它再次停止工作的原因。
我在MT的旧版本中也能工作,新版本有什么问题?
所以在第二个版本中,有一个价值。
事实上,我可能是错的。
好吧,你可以这样做,但还是没有用。
ExtMomBuffer[0]=cnt++;
问题的关键是,试图在EA的每一步写到指标的0条--没有任何作用。
我想我已经找到了可以挖掘的地方。改变了
到真实,而且有些东西开始显示出来了。我要去买醉了。