设置SlickEdit来处理和编译MQL4/5文件。 - 页 10

 
CArrayObj *CSelect::ByOrderProperty(
CArrayObj *list_source,ENUM_ORDER_PROP_INTEGER property,long value,ENUM_COMPARER_TYPE mode)
  {
   if(list_source==NULL) return NULL;
   CArrayObj *list=new CArrayObj();
   if(list==NULL) return NULL;
   list.FreeMode(false);
   ListStorage.Add(list);
   int total=list_source.Total();
   for(int i=0; i<total; i++)
     {
      COrder *obj=list_source.At(i);
      if(!obj.SupportProperty(property)) continue;
      long obj_prop=obj.GetProperty(property);
      if(CompareValues(obj_prop,value,mode)) list.Add(obj);
     }
   return list;
  }

这是Artyom Trishkin 图书馆的一个例子,一切都很好,只有一个问题:作者有很多包装纸没有使用,因为他声称这些包装纸以后会使用,但现在是用来做笔记、提醒的
我想使用他的库,但如果没有额外的允许折叠代码的编辑器,就不可能在代码中进行定向操作。当你从头到尾翻阅MetaEditor中的所有代码时,你已经忘记了你想要什么。我已经厌倦了在标准编辑器中使用所有可能的附加功能,如Ctrl+g,再加上笔和纸!我已经厌倦了。

问题。

list.FreeMode(false);
list_source.At(i);

当我们通过指针向方法传递参数或创建一个指向类的指针时,否则就不可能实现MQL(或这个)。SlickEdit 拒绝定义由指针传递的类的方法,这是MQL的一个严格定义。
但如果我们把指针运算符(*)改为引用运算符(&),一切都变得可见,甚至可以自动定义类成员。但这在MQL中是不允许的!

因此,如何以及在哪里设置(*)操作符的指针,以便在SlickEdit 中把它当作(&)操作符

 
BmC:

这是Artyom Trishkin 图书馆的一个例子,一切都很好,只有一个问题:作者有很多包装纸没有使用,因为他声称这些包装纸以后会使用,但现在是用来做笔记、提醒的
我想使用他的库,但如果没有额外的允许折叠代码的编辑器,就不可能在代码中进行定向操作。当你从头到尾翻阅MetaEditor中的所有代码时,你已经忘记了你想要什么。我已经厌倦了在标准编辑器中使用所有可能的附加功能,如Ctrl+g,再加上笔和纸!我已经厌倦了。

问题。

当我们通过指针向方法传递参数或创建一个指向类的指针时,否则就不可能实现MQL(或这个)。SlickEdit 拒绝定义由指针传递的类的方法,这是MQL的一个严格定义。
但如果我们把指针运算符(*)改为引用运算符(&),一切都变得可见,甚至可以自动定义类成员。但这在MQL中是不允许的!

因此,如何以及在哪里设置(*)操作符的指针,以便在SlickEdit 中把它当作(&)操作符

恐怕(&)和(*)运算符不能被覆盖(不是SE的错)。

你一定是用MQL5和SE中的C++一起工作的吧?我不知道该怎么建议....。试着像使用C#一样工作。

 
Andrey Dik:

恐怕(&)和(*)运算符不能被覆盖(不是SE的错)。

可能与MQL5一起使用,就像在SE中使用C++一样?不知道该如何建议....。试着像使用C#一样工作。

我的工作是用户语言而不是C#和C++,因为我认为宏在不同情况下会对运算符(*和&)进行不同的处理。

 
BmC:

我的工作是自定义语言而不是C#和C++,因为我认为宏在不同情况下会对运算符(*和&)有不同的处理。

有可能在SE中创建和使用自定义语言吗? 我不知道这一点。

我的意思是以下几点。


 

只有在专业版中可以设置你自己的语言。正如帮助中所说的,当创建你自己的语言而不是SlickEdit指南中指定的语言时,你将面临更高级的宏配置,所以我正在寻找这个宏,它被配置为搜索由指针传递的类中的嵌套方法。
我发现,C++通过指针(*)对象传递意味着在MQL中使用运算符(->)而不是(.)。因此,如果你在定义自定义语言时在宏中替换或应用条件编译命令,这些运算符将被替换。这意味着在这种情况下我不能使用建议的C#或C++语言的设置,因为我实际上想改变运算符访问结构。

我下载了25版,现在正在调整。 我在论坛上看到,它对连接自定义语言有更灵活的设置。我将尝试同时创建一个自定义语言和在模板C#和C++上,看看哪一个更好,也许我将发布关于设置25版的说明。

 
BmC:

只有在专业版中可以设置你自己的语言。正如帮助中所说的,当创建你自己的语言而不是SlickEdit指南中指定的语言时,你将面临更高级的宏配置,所以我正在寻找这个宏,它被配置为搜索由指针传递的类中的嵌套方法。
我发现,C++通过指针(*)对象传递意味着在MQL中使用运算符(->)而不是(.)。因此,如果你在定义自定义语言时在宏中替换或应用条件编译命令,这些运算符将被替换。这意味着在这种情况下我不能使用建议的C#或C++语言的设置,因为我实际上想改变运算符访问结构。

我下载了25版,现在正在调整。 我在论坛上看到,它对连接自定义语言有更灵活的设置。我将尝试同时创建自定义语言和C#及C++模板,看看哪一个更好,也许我将发布设置25版的说明。

是的,只是想说,如果有可能创建一个自定义语言,你可以尝试这样做:创建一个自定义语言,从相应的CPP或C#语言文件中转移现成语言的设置,然后尝试改变相应运算符的行为。

 
Andrey Dik:

是的,只是想说,如果有可能创建一个自定义语言,你可以尝试这样做:创建一个自定义语言,从相应的CPP或C#语言文件中转移现成语言的设置,然后尝试改变相应运算符的行为。

我就是这样做的,设置只需要从c#(CSharp)中转移,因为它更适合于通过引用传递对象。在C++(cpp)中,你必须插入运算符(->)来引用对象方法,而不是运算符(。

在创建自定义语言时的第二个问题是,在第25版中,着色没有通过复制设置来传递,或者只是坦克SlickEdit v25.0.2.0 64位。 我确信这是开发人员在着色方面的错误,在以前的版本中一切正常,在这个版本中却停止了)。