错误、漏洞、问题 - 页 1743

 
调试员怎样才能看到函数通过返回返回什么值?我在返回时设置了一个中断点。当我走到它时,我按下F10。我怎样才能看到回报的内容呢?
 
fxsaber:
调试员怎样才能看到函数通过返回返回什么值?我在返回时设置了一个中断点。当我走到它时,我按下F10。我怎样才能看到回报的内容?
shift + F9("添加手表")。
但由于你的代码中显然所有的东西都是建立在类的基础上,你可以期待一打愤怒的信,解释Meta Editore是如何可怕、糟糕和不方便调试的))
 
偶然发现了我的一个好例子
class A
{
public:
  void operator =( const string Value ) const { return; }

  void operator =( const int Value ) { return; }
};

void OnStart()
{
  const A a;

  a = 0; // implicit conversion from 'number' to 'string'
}
一开始并不明显,为什么会有这样的警告。不过,聪明的编译器。
 
Sergey Dzyublik:
shift + F9("添加手表")。
你想添加什么?
 
一个变量,该函数向其返回一个值。
如果它没有在任何地方返回,或者有几个嵌套的调用,就创建一个变量,这样就可以把函数的结果写在那里并进行调试。
 
Sergey Dzyublik:
函数在其中投掷数值的变量。
如果它没有返回任何地方,或者有几个嵌套的调用,创建一个变量,这样你就可以把函数的结果写在那里并进行调试。

好吧,每个聪明的人都可以用一个变量来做。但我需要像个傻瓜一样去做--没有它。

有很多这样的功能。

  virtual bool SetProperty( const ENUM_CHART_PROPERTY_INTEGER id, const int Value ) const
  {
    return(::ChartSetInteger(this.chartID, id, Value));
  }

  virtual bool SetProperty( const ENUM_CHART_PROPERTY_DOUBLE id, const double Value ) const
  {
    return(::ChartSetDouble(this.chartID, id, Value));
  }

  virtual long GetProperty( const ENUM_CHART_PROPERTY_INTEGER Property, const int SubWindow = 0 ) const
  {
    return(::ChartGetInteger(this.chartID, Property, SubWindow));
  }
  
  virtual double GetProperty( const ENUM_CHART_PROPERTY_DOUBLE Property, const int SubWindow = 0 ) const
  {
    return(::ChartGetDouble(this.chartID, Property, SubWindow));
  }

而现在你必须在每个人身上插入一个变量?还有别的办法吗?

 
为什么OBJPROP_YOFFSET不能变成负数?帮助中没有uint。
 
fxsaber:

现在在每一个中插入一个变量?还有别的办法吗?

显然,这些函数必须重新命名:GetPropertyLong、GetPropertyDbl。 为什么它们的名字相同?

在未来,开发人员承诺修改函数模板,以便能够以如下方式调用它们:GetProperty<long>(...) 但你不会让模板变成虚拟的。

 
Alexey Navoykov:

显然,这些函数应该改名为:GetPropertyLong、GetPropertyDbl。 为什么它们的名字相同?

我不明白为什么它们有不同的名字。我使用这个。

this.SetProperty(OBJPROP_XSIZE, (int)CHARTOBJECT::GetProperty(CHART_WIDTH_IN_PIXELS)); // Ширина объекта по оси X в пикселях
this.SetProperty(OBJPROP_YSIZE, (int)CHARTOBJECT::GetProperty(CHART_HEIGHT_IN_PIXELS)); // Ширина объекта по оси Y в пикселях

this.SetProperty(OBJPROP_DATE_SCALE, false); // Признак отображения шкалы времени для объекта "График"

this.SetProperty(OBJPROP_BACK, false); // Объект на заднем плане

this.SetProperty(CHART_AUTOSCROLL, false); // Режим автоматического перехода к правому краю графика
this.SetProperty(CHART_SHIFT, false); // Режим отступа ценового графика от правого края

this.SetProperty(CHART_SHOW_OHLC, false); // Отображение в левом верхнем углу значений OHLC
this.SetProperty(CHART_SHOW_PERIOD_SEP, false); // Отображение вертикальных разделителей между соседними периодами
this.SetProperty(CHART_SHOW_VOLUMES, CHART_VOLUME_HIDE); // Отображение объемов на графике
this.SetProperty(CHART_SHOW_TRADE_LEVELS, false); // Отображение на графике торговых уровней (уровни открытых позиций, Stop Loss, Take Profit и отложенных ордеров)  

this.SetProperty(CHART_MODE, CHART_LINE); // Тип графика (свечи, бары или линия)
this.SetProperty(CHART_COLOR_CHART_LINE, clrNONE); // Цвет линии графика и японских свечей "Доджи"

this.SetProperty(CHART_SCALEFIX, true); // Цвет линии графика и японских свечей "Доджи"

this.SetProperty(CHART_FIXED_MAX, 1.5); // Фиксированный максимум графика
this.SetProperty(CHART_FIXED_MIN, 1.0); // Фиксированный минимум графика

在未来,开发者承诺修改函数模板,使其可以这样调用:GetProperty<long>(...) 但你不能让模板变成虚拟的。

我不明白这个例子。

我很乐意听取你(和其他有能力的论坛用户)对我的代码的建筑风格和程序员的语气的批评(认真的)。我一完成,就会在kodobase上发布。学习从来不是一件羞耻的事。

 
当您试图从 "Navigator "窗口删除一个指标、专家顾问或脚本时,MT4会要求您确认删除。因此,无论你试图删除什么(指标、EA或脚本),问题文本都不会改变。

普遍的问题是 "删除EA?"

MT4 Build 1010(2016年8月19日)。