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

 
Sergey Dzyublik:

文章量が多いので、全部は読んでいません。
しかし、デバッグ版で動作していたものがリリース版では動作しない、またはその逆の場合、特にクラス/構造体のすべての変数とフィールドが初期化されているかどうかを確認してください。

初期化が必要なデータは初期化しました。そして、たまたまそこにランダムなデータがあった場合、プログラム自体にエラー(例えば、Array out of rangeやInvalidpointer)を発生させることになる。少なくとも、デバッガの動作に影響を与えることはありません。そして、そのようなバグを発見するのに役立ちます。

 
Mihail Matkovskij:



(ME5(ビルド2390)では修正 されていません)** デバッガ、StepInto (F11)、インストールしたブレークポイントが機能しない。

 
TheXpert:
ファイル構造が複雑で、デバッガがブレークポイントを関連付けられないのかもしれませんが、その場合はデバッガの問題です。

私のプロジェクトで 使用している標準的なUI要素のファイル構成は、私の作品以上に複雑だと思います。そういうものを作るには、相当な努力が必要だと思います。でも、そのまま、持って、使ってくださいということです。私の場合のように、すべてをまとめてしまうとそうすると、確かに、何か複雑なものが出てきます。しかし、ランニングプログラムでは、ごく普通のことなのです。

 
fxsaber:

当初は、このように持ち上がった。


ある段階になると、かかった時間の相対的な部分だけでなく、絶対的な部分も重要になってきます。

しばらくはC言語で変数を割り当てることに慣れることです。

最初のカスタム関数では、入力のMqlTick構造体は、メモリ割り当て なしで、直接MQL関数に渡されます。
このようなエントリーをバッドコーディングと呼びます。

bool GetCurrentTick1( MqlTick &Tick )
{
  return(SymbolInfoTick(_Symbol, Tick));
}

2番目の例では、CurrentTick変数が作成され、そのためにメモリが割り当てられています。
また、このエントリーがより正しいと判断されます。
すでにメモリが確保されているため、無駄なコストをかけずに入力データを高速に処理することができます。

bool GetCurrentTick2( MqlTick &Tick, const bool NewTick = false )
{
  static MqlTick CurrentTick;
  
  if (NewTick)
    SymbolInfoTick(_Symbol, CurrentTick);
  
  Tick = CurrentTick;
  
  return(true);
}
 
Roman:

もう少しC言語ができるようになれば、変数を割り当てる習慣が身につくよ。

自分のアドバイスに従えば、配分のアイデアくらいは出てくるかもしれません。
 
Roman:

...

そして、その記録の方が正しいとされているのです。

誰が数えたんだ? せめて速度計測を先にしろよ。

 
Alexey Navoykov:

誰がカウントしてるんだ? そもそも速度測定くらいしてくれよ。

荒らしに注目されすぎ

 
TheXpert:
自分の言うとおりにすれば、配分の片鱗くらいは見えてくるかもしれません。

アロケーションというのは、メモリの割り当ての ことです。
クラスという文字通りの意味ではなく、
ユーザー定義関数は、独自のスコープを持ちます。

 
Alexey Navoykov:

誰がカウントするんだ? そもそも速度測定くらい出せよ。

前のページでfxsaberさんが測定値を教えてくれました。
なぜこのようになるのかを説明しました。
静的、動的を問わず、常にメモリを確保する。

 
Sergey Dzyublik:

もしかしたら、この不具合が発生しているかもしれません。

(ME5(ビルド2390)では修正 されていません)** デバッガ、StepInto (F11)、インストールしたブレークポイントが機能しない。

可能性はある...上で説明したint型CCheckGroup::itemCheckState(const string item)メソッドを試してみました。そして、最初はデバッガーがそこに行くんです。しかし、一度終了してそれで終わりとなると、デバッガはもうそれを見ず、ブレークポイントも「エンターでステップ」も効かない。まあ、一時的にPrint()とAlert()でやりくりするしかないでしょう。

理由: