エラー、バグ、質問 - ページ 2675

 
Sergey Dzyublik:

MT5(build2316)で内部クラス使用時のテンプレートクラスコード生成の不具合を修正しました。
C++オンライン: https://onlinegdb.com/HJkKXAqMU

投稿ありがとうございます、修正しました

 
Sergey Dzyublik:

バグ MT5(build 2340) テンプレート関数のテンプレートパラメーターの内部クラスにアクセスしようとすると、コンパイルエラーに なる。

投稿ありがとうございます、修正しました

 
Ilyas:

ファイルのエンコーディングは?

標準のUTF-8では

エンコーディングやデリミタを変えて、いろいろ試してみました。

結果は5008かヒエログリフです。

 
Sergey Dzyublik:

MT5コンパイラ(ビルド2321)について早速2点質問です。

1.MQLにおけるテンプレート関数の実行の優先順位は、C++におけるテンプレート関数の優先順位とは一致しません(online: https://onlinegdb.com/Hkvz8Hu7L)
つまり、C++では、3つのテンプレート関数がすべて存在する場合、結果が「C++:1」のテンプレート関数が実行され、それが削除された場合は「C++:2」が実行され、削除された場合は「C++:3」が実行されるのです。
MQLでは、「C++:2」に続いて「C++:1」「C++:3」と、優先順位がかなり異なっています。


MQLでは、ダミー・パラメーターを持つ同じ関数がすでに許可されているのに、なぜ最初の関数が禁止されているのか、その理由は明らかではありません。

メッセージありがとうございます、修正しました

 
Vladimir Pastushak:

標準のUTF-8では

異なるエンコーディングや異なるセパレータを試しました。

結果は5008かヒエログリフです。

調査するファイルとともに、動作するコードをご提示ください。

 

現場の仕事について。

個人口座の残高表示が少しずれている、修正してもらえるとゼロが多くなる

ファイル:
q1.PNG  12 kb
 
Ilyas:

調査するファイルとともに、動作するコードをご提示ください。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   core();
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {

  }
//+------------------------------------------------------------------+
void core()
  {
   string value = "", name = "";

   name =  "Test\\Test.csv";
   Print(FileIsExist(name));

   ResetLastError();
 
   int m_hendle = -1;
   m_hendle = FileOpen(name, FILE_READ | FILE_WRITE | FILE_CSV);
   if(m_hendle != INVALID_HANDLE)
     {
      Print((string)m_hendle + "    " + name + " [" + (string)FileSize(m_hendle) + "]"+ (string)GetLastError());
       while(!FileIsEnding(m_hendle))
        {
         string sCurrent = FileReadString(m_hendle);
         Print("sCurrent = ", sCurrent);
        }
      FileClose(m_hendle);
     }
  }
//+------------------------------------------------------------------+
ファイル:
Files.zip  1 kb
 
Sergey Dzyublik:
C++ではコンパイルして動作するのですが(オンライン:https://onlinegdb. com/Syn90dd7I)、MQLではエラー: "'func' - ambiguous call to overloaded function" となっています。

投稿ありがとうございます、修正しました

 
Vladimir Pastushak:

標準のUTF-8では

エンコーディングやデリミタを変えて、いろいろ試してみました。

結果は5008かヒエログリフです。

エンコーディングはANSIで、ロシアのWindowsでのみ動作します。

ファイルオープン時のFILE_ANSI フラグの追加

m_hendle = FileOpen(name, FILE_READ | FILE_WRITE | FILE_CSV | FILE_ANSI);
 
Sergey Dzyublik:
バグ番号: MT5 (build 2340) 内部構造体がテンプレート関数に渡されるとき、結果のデータ型は テンプレートクラス内の別の内部構造体のベースデータ型として使用できません。

投稿ありがとうございます、修正しました