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

 

問題箇所を発見

//+------------------------------------------------------------------+
//| Init local header structure from charr array                     |
//+------------------------------------------------------------------+
bool ZipLocalHeader::LoadFromCharArray(uchar &array[])
{
   if(ArraySize(array) != sizeof(ZipLocalHeader))
   {
      SetUserError(ZIP_ERROR_BAD_FORMAT_ZIP);
      return false;
   }
   ZipLocalHeaderArray zarray;
   ArrayCopy(zarray.array, array);
   this = (ZipLocalHeader)zarray;
   if(header != ZIP_LOCAL_HEADER)
   {
      SetUserError(ZIP_ERROR_BAD_FORMAT_ZIP);
      return false;
   }
   return true;
}
下線部、クラッシュの原因になります。
 
A100:

サポートチーム 2015.10.23 14:18
午後
このアカウントは2週間接続がないため、削除されました。

端末の更新の ためだけに、接続回数を増やしたり、その都度新規に登録したりする必要があることがわかったのです。

1日1回はデモ口座に接続しています。そして、情報を教えていただきありがとうございました。
 
Vasiliy Sokolov:

問題箇所を発見

下線部、クラッシュの原因になります。
固定されています。新しいビルドでは、クラッシュはありません。
 

MT4ビルド900

プラグインクラスを使ったリストアップ

#include <Object.mqh>

以前はエラーなく動作していたが、現在はエラーが出てしまう

can't open "C:\Users\user\AppData\Roaming\MetaQuotes\Terminal\EDCF3DASDFGHJKL463EF6E36630ADFFD\MQL5\include\Object.mqh" include file    ValType.mqh     10      11

なんでですか

 
coderex:

なんでですか

*.mq4ファイルが*.mq5になっています。

拡張子の変更に関するあなたの最後の行動が理由です

 
coderex:

MT4ビルド900

プラガブルクラスを使ったリストアップ

以前はエラーなく動作していたが、現在はエラーが出てしまう

なんでですか

残念ながら私のミスで、900ビルドでは全てのmqhをMQL5で コンパイルしています。

本日、このエラーが発生しないビルドをリリースする予定です。
 
Renat Fatkhullin:

Viewerのファイルは、windows/system32ディレクトリに転送されます。

Windows/system32にMetaViewer64.dllだけあって、metaviewer.dllは存在しないので、OSがビットレートに応じてビューアファイルを選択し、必要なファイルをコピーして不要なファイルを削除していると理解すれば良いのでしょう。
 
Ilyas:
残念ながらこれは私のミスで、900ビルドのコンパイラはすべてのmqhをMQL5言語を使って コンパイルしています。

本日、このエラーが発生しないビルドをリリースする予定です。

902のビルドでは、これはすでに含まれています :) ありがとうございます、しかし、クラス宣言の後にクラスメソッドを定義した場合のみ、エラーが発生します。

このようなエラーはありません。

/*!
   \brief   Контейнер для хранения значений в зависимости от типа
*/
template<typename T>
class CValContType : public CObject
  {
private:
   T     m_tVal;      // значение типа T

public:
                     CValContType(T aVal) { m_tVal = aVal; };   // конструктор
                    ~CValContType(void) { };
   T                 GetData(void) { return m_tVal; };          // получение хранимых в контейнере данных
  };

そして、こんなエラーが出ています。

/*!
   \brief   Контейнер для хранения значений в зависимости от типа
*/
template<typename T>
class CValContType : public CObject
  {
private:
   T     m_tVal;      // значение типа T

public:
                     CValContType(T aVal);
                    ~CValContType(void);
   T                 GetData(void);          // получение хранимых в контейнере данных
  };
//+------------------------------------------------------------------+
/*!
   Конструктор
   \param   T aVal - значение контейнера
*/
template<typename T>
CValContType::CValContType(T aVal) { m_tVal = aVal; }
/*!
   Деструктор
*/
CValContType::~CValContType(void) { }
/*!
   Получение хранимых в контейнере данных
   \return   возвращает значение контейнера
*/
template<typename T>
T CValContType::GetData(void) { return m_tVal; }
//+------------------------------------------------------------------+

エラーです。

'CValContType' - template mismatch      ValType.mqh
はデストラクタの定義がある行を示します。とりあえず出してみて、コンストラクションの機能を確認しました。したがって,クラステンプレートでは,各外部メソッドの定義にtemplate<typename T> コンストラクトを追加する必要があります.
 

MT4でChart Refreshをクリックした後、ログに同じことが繰り返されます: HistoryCenter:2 bars imported in 'GBPSGD1'

今は週末で、履歴はすべてインポートされています。だから、2本の棒は輸入してはいけないのです。

 
テンプレートの場合、本体を外部に持ち出すことなく、すべてのメソッドをクラス記述内に配置することが要求されます。