错误、漏洞、问题 - 页 2330 1...232323242325232623272328232923302331233223332334233523362337...3184 新评论 pavlick_ 2018.11.26 18:35 #23291 Ilyas: 我已经大致弄清了原因。我有一个全局变量。 CArrayObj actobjects; 与mcl环境和任务的初始化顺序有关,显然,如果actobjects一个指针,自己在那里放一个数组,没有什么崩溃。全局变量中的类--不好的做法,当然,我会重写。但在函数中的静态数组会出现问题(在μl中,规则--在第一次进入函数时初始化不起作用)。 一般来说,如果它算作是一个bug,那么在知道了大概的原因后,我大概可以把它定位。 pavlick_ 2018.11.27 01:35 #23292 pavlick_:无论如何,如果它算作一个bug,知道了大致的原因,我想我可以把它定位。不,抓不到,剪掉代码后奇迹般地消失了。甚至注释掉一些行(在崩溃前不执行)也会影响它。 fxsaber 2018.11.27 07:27 #23293 有一个长的代码类,它位于mqh。我们需要创建完全相同的类,它与原来的类只有两行不同(不是少符号,而是多符号)。 能否在不创建另一个几乎相同的mqh的情况下做到这一点? 当班级很短时,你可以很容易地用多行宏来做,一切都很容易出来。但这里的代码很长。 我不想创建一个mqh-clone,因为如果我修复一个mqh,我将不得不在第二个mqh中重复我的所有操作。此外,还有遗忘和不注意的人为因素。 你仍然可以用一个模板类来做。但是,这对执行速度的影响一点也不明显。快速运行时需要这个班。 TheXpert 2018.11.27 07:37 #23294 fxsaber:#ifdef fxsaber 2018.11.27 07:38 #23295 TheXpert:#ifdef这是不可能的。两个班级都必须在运作。 TheXpert 2018.11.27 07:42 #23296 fxsaber:这是不可能的。这两个班级都应该在运作。我不觉得有什么问题。 _____________ 遗产 把差异放在不同的小班里 fxsaber 2018.11.27 08:06 #23297 TheXpert:我不觉得有什么问题。 _____________ 遗产 把差异放在单独的小班里一个类中有几个规模不小的方法。在每一种方法中,你只需要把">"号换成"<"号。 你可以使用像这样的虚拟class A { private: virtual bool Compare() { return(true); } public: bool f() { return(this.Compare()); } }; class B : public A { private: virtual bool Compare() { return(false); } }; void OnStart() { A a; B b; Print(a.f()); Print(b.f()); } 但是,不幸的是,我们仍然需要传递类的初始化值。所以我想我们终究还是要使用一个模板。 pavlick_ 2018.11.27 08:13 #23298 fxsaber:我会通过模板参数传递一些适配器(不应该有任何刹车),但如果你想这么笨拙,你也可以。做一个到头文件的硬链接(mklink /H <link> <target>,如果我没记错的话。你可以用谷歌搜索 "windows创建硬链接")。然后以通常的方式启用这些东西 #define _N C1 // имя класса #define _M "c1" // какой-то параметр #include <qq.mqh> #undef _N #undef _M #define _N C2 #define _M "c2" #include <ee.mqh> // жёсткая ссылка на qq.mqh #undef _N #undef _M fxsaber 2018.11.27 08:17 #23299 pavlick_:我会通过模板参数传递一些适配器(不应该有任何刹车),但如果你想这么笨拙,你也可以。做一个到头文件的硬链接(mklink /H <link> <target>,如果我没记错的话。你可以用谷歌搜索 "windows创建硬链接")。然后你只需按照通常的方式将其插入。 你错过了重点。 pavlick_ 2018.11.27 08:23 #23300 fxsaber:你不明白这个问题。好吧,我不知道,你确定你明白我的意思吗? 万一列出的是qq.mqh和ee.mqh(一个实体,改变一个就改变另一个)。 class _N { public: void f() {Alert(_M);} }; 都是按顺序排列的,类别不在macros,几乎一样,除了_M。 1...232323242325232623272328232923302331233223332334233523362337...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我已经大致弄清了原因。我有一个全局变量。
与mcl环境和任务的初始化顺序有关,显然,如果actobjects一个指针,自己在那里放一个数组,没有什么崩溃。全局变量中的类--不好的做法,当然,我会重写。但在函数中的静态数组会出现问题(在μl中,规则--在第一次进入函数时初始化不起作用)。
一般来说,如果它算作是一个bug,那么在知道了大概的原因后,我大概可以把它定位。
无论如何,如果它算作一个bug,知道了大致的原因,我想我可以把它定位。
不,抓不到,剪掉代码后奇迹般地消失了。甚至注释掉一些行(在崩溃前不执行)也会影响它。
有一个长的代码类,它位于mqh。我们需要创建完全相同的类,它与原来的类只有两行不同(不是少符号,而是多符号)。
能否在不创建另一个几乎相同的mqh的情况下做到这一点?
当班级很短时,你可以很容易地用多行宏来做,一切都很容易出来。但这里的代码很长。
我不想创建一个mqh-clone,因为如果我修复一个mqh,我将不得不在第二个mqh中重复我的所有操作。此外,还有遗忘和不注意的人为因素。
你仍然可以用一个模板类来做。但是,这对执行速度的影响一点也不明显。快速运行时需要这个班。
#ifdef
这是不可能的。两个班级都必须在运作。
这是不可能的。这两个班级都应该在运作。
我不觉得有什么问题。
_____________
遗产
把差异放在不同的小班里
我不觉得有什么问题。
_____________
遗产
把差异放在单独的小班里
一个类中有几个规模不小的方法。在每一种方法中,你只需要把">"号换成"<"号。
你可以使用像这样的虚拟但是,不幸的是,我们仍然需要传递类的初始化值。所以我想我们终究还是要使用一个模板。
我会通过模板参数传递一些适配器(不应该有任何刹车),但如果你想这么笨拙,你也可以。做一个到头文件的硬链接(mklink /H <link> <target>,如果我没记错的话。你可以用谷歌搜索 "windows创建硬链接")。然后以通常的方式启用这些东西
我会通过模板参数传递一些适配器(不应该有任何刹车),但如果你想这么笨拙,你也可以。做一个到头文件的硬链接(mklink /H <link> <target>,如果我没记错的话。你可以用谷歌搜索 "windows创建硬链接")。然后你只需按照通常的方式将其插入。
你错过了重点。
你不明白这个问题。
好吧,我不知道,你确定你明白我的意思吗? 万一列出的是qq.mqh和ee.mqh(一个实体,改变一个就改变另一个)。
都是按顺序排列的,类别不在macros,几乎一样,除了_M。