错误、漏洞、问题 - 页 295

 
Voodoo_King:


然后...在软件开发中,没有崩溃屏幕被认为是一个好的基调。


这就是我们正在处理的问题。

 
stringo:
你必须重现这个错误才能修复它。我想看看你的代理日志。如果你能派出你的专家,那就太好了。并描述输入的测试参数。

它必须是分钟时间框架,而不是在"每个刻度"开启时的其他选择。

我只是到处都有一分钟的时间框架,一切似乎都很好。

P.S. 我在上面写道。

 

如果FILE_SHARE_READ 标志是一个打开标志,而不是打开标志本身,为什么文件还是会打开?

2011.02.07 18:18:14    Лист18 (EURUSD,H1)    Файл открыт с флагом FILE_SHARE_READ нормально Templates\Example.txt
2011.02.07 18:18:14    Лист18 (EURUSD,H1)    SHARE_READ  
void SHARE_ReadFile()
  {
   string subfolder="Templates";
   int han=FileOpen(subfolder+"\\"+folder+".txt",FILE_SHARE_READ|FILE_TXT|FILE_ANSI,"\r");
   if(han!=INVALID_HANDLE)
     {
      Print("SHARE_READ  ",FileReadString(han));           

      Print("Файл открыт с флагом FILE_SHARE_READ нормально "+subfolder+"\\"+folder+".txt"); 
      FileClose(han);
     }
   else
     {
      Print("Ошибка открытия файла с флагом FILE_SHARE_READ "+subfolder+"\\"+folder+".txt, error",GetLastError());
     }
  }

在我看来,结果应该是一个开放文件错误。

事实上也是如此,因为没有任何东西被打印出来,但检查句柄显示文件是打开的。

 
mql5:
该图片被添加到EX5资源中,由
#resource "<相对于MQl5\Images文件夹的文件路径>"。

例子

#resource "res\\test.bmp";

一切都到位了吗?我在寻找EA文件中#resource的路径,相对于EA的源目录。

无法打开资源文件'C:Program Files\MetaTrader 5 DEV\MQL5\Experts\myexpert\res\test.bmp' (3) 0 0

如果#resource在注入的文件中,所有的东西都在一个地方,进入其他inludes的文件夹。

不能打开资源文件'C:Program Files\MetaTrader 5 DEV\MQL5\include\Arrays\res\test.bmp' (3) 0 0

下一个变体从MQL5的 "根 "开始搜索

#resource "\\res\\test.bmp";

无法打开资源文件'C:Program Files\MetaTrader 5 DEV\MQL5\res\test.bmp' (3) 0 0

我还看到,以前能用的东西也不能用了(文件躺在MQL5/Images/res/test.bmp)。

ObjectSetString(0,pname,OBJPROP_BMPFILE,0,"\\res\\test.bmp");

我错过了什么吗?

 
Vigor:

例子

一切都到位了吗?我在寻找EA文件中#resource的路径,相对于EA的源目录。

无法打开资源文件'C:Program Files\MetaTrader 5 DEV\MQL5\Experts\myexpert\res\test.bmp' (3) 0 0

如果#resource在_include文件中,所有的东西都在一个地方,并进入其他inludes的文件夹。

不能打开资源文件'C:Program Files\MetaTrader 5 DEV\MQL5\include\Arrays\res\test.bmp' (3) 0 0

下一个变体从MQL5的 "根 "开始搜索

无法打开资源文件'C:Program Files\MetaTrader 5 DEV\MQL5\res\test.bmp' (3) 0 0

我还注意到,以前能工作的东西也不工作了(文件是MQL5/Images/res/test.bmp)。

我错过了什么吗?



我认为应该是

MetaTrader 5客户终端构建 384

  1. 终端:增加了添加远程测试代理 的向导。除了手动输入和从*.mt5文件导入外,还增加了扫描本地网络以寻找工作代理的可能性。
  2. MQL5: 增加了在*.ex5文件中存储资源的可能性。要在*.ex5中添加资源,使用#resource 指令,指定相对于客户终端的MQL5/Images 目录的文件路径。例如:#resource myexpert\button.bmp
    资源中的文件可以用一个字符串来指代,比如。"script_name::resource_name"。在#resource指令中传递的文件名(没有扩展名)被用作资源名称。
如果理解正确,文件可以位于这里 -MQL5\Images\目录名/文件名
 
Interesting:

它看起来像这样

MetaTrader 5客户终端构建 384

相对于客户终端的MQL5\Images 目录。例如:#resource myexpert\button.bmp

这是相对的,没有引号,而反斜线是双倍的,这是不可行的。
 
Vigor:
这是相对的,不起作用。而且你不能不加引号,反斜杠是双倍的。

让我们来看看。

这就是#resource "\Images\\\\Phoenix\Logo.bmp "似乎是如何工作的。

虽然它看起来很奇怪(根据想法,它应该相对搜索MQL5\Images, 即至少它应该看起来像这样 - #resource "\\\\Phoenix\\Logo.bmp")。

要么让它相对于Images目录,要么纠正发布说明(使一切都符合逻辑和可理解)...

 
我已经在评论中提供了一个MQL5文件夹的例子。顺便说一下,我已经得到了那里的日志信息,它清楚地显示了编译器在哪里搜索文件。

而且,就像我写的那样,从Images文件夹中使用相对路径的OBJPROP_BMPFILE也不起作用。一般来说,根据最新的实验,当从MQL5的完整路径开始指定时,一切都能正常工作。

问题是这种创新是否有效?还是说这是一个暂时的现象?

 
Vigor:
我在关于MQL5文件夹的评论中有一个例子。顺便说一下,我在那里有日志信息,它清楚地显示了编译器在哪里搜索文件。

但它看起来到处都是,但不是它应该去的地方 :(
 

你好!

代码。

如果(NormalizeDouble(Prices_Flow[0].Price_Position,4) !=0)
{
double Position_In_Percentage = Prices_Flow[0].Indicator_Position * 100 / Prices_Flow[0].Price_Position;
//与问题无关的进一步代码
}


当在其中一个工具上同时在策略测试器中测试时,出现了除以零的 情况(2011.02.08 01:40:23 核心 2 2010.08.02 00:00:00 在'almirlib.mqh'(535,102)中除以零)。

上述代码是如何做到的?