というのは、#includeディレクティブが繰り返されても無視されることがわかったからです。
int OnStart() { #include <dummy.mqh> #include <dummy.mqh> #include <dummy.mqh> #include <dummy.mqh> }
と同じ働きをします。
int OnStart() { #include <dummy.mqh> }
クラス宣言を別ファイルで行っている場合、これは非常にありがたい動作なのだが、ヘルプファイルには記載がない。
動的に割り当てられたメモリを削除する」|「再帰的な関数の使用を制限する」ことを確認するような、一般的なプログラミングの質問をしているのでしょうか。それともベータ版のメモリリークバグのことでしょうか?
間違いなく前者です。私はJAVA出身なので、未使用のオブジェクト参照に気を配るという経験はありません。ですから、一般的な警告メッセージを受け取った後に、リークしたオブジェクトを見つけるためのヒントがあるとありがたいという意味です(そのようなヒントがある場合)。今、私は警告が出力したバイト数から漏れたオブジェクトのクラスを識別しようとしています。
mt5と比べると不完全です。クラス名を示す別の行があるはずです。すぐに追加されることを期待します。
さて、漏水探索は本当に厄介なものになりました...予想以上です。
ツールを作るのに苦労したが、全然うまくいかなかった。new/delete文を再定義できることはわかったが、それを置き換えるものがないことに気がついた。これが括弧付きの関数なら簡単なのだが、残念ながらステートメントである。new/delete文を登録するためのラッパーを作ることもできるが、それは非常につらい解決策であり、将来性もない。
もし、リークの原因を突き止めた経験をお持ちの方がいらっしゃいましたら、ぜひともご一報ください。
多分、これらの記事(mql5用ですが、新しいmql4にも同じことが適用されます)が解決策を見つけるのに役立つと思います。
MQL5でオブジェクトポインタを使用する多分、これらの記事(mql5用ですが、新しいmql4にも同じことが当てはまります)は、あなたが解決策を見つけるのを助けることができます。
MQL5でオブジェクトポインタを使う
ご指摘ありがとうございます。
残念ながら、この記事はリークを処理する助けにはならないようで、リークが発生する理由を説明しているだけです。
私がこれまで行ってきた唯一の解決策は、作成するすべてのコードに対してユニットテストを作成し、開発中に頻繁にユニットテストを実行することです。そのため、もしリークが発生したら、その原因となったテストケースを切り分けようとすることがあります。しかし、テストによってはかなり複雑なものもあるので、簡単には解決できない。また、エディタが面倒です。
新シンタックスをどう区別するか?
次期」構文と「オリジナル」構文を参照するための別の言葉が必要な気がします。MQは正式名称を気にせず、互換性があるように見せかけ続けているようです。
ですから、私たちは自分たちで適切な名称を見つけなければならないようです。何か提案はありますか?MQL4 V2, OMQL4 (i.e.Object-), MQL4.1 ...?
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
ベータ版がリリースされてからしばらく経ちますが、1月中旬に正規版がリリースされるかもしれないというメモをどこかで見付けました。ベータ版で学んだアイデアや問題点を共有することに興味を持つコーダーがいるかもしれませんね。
新しいMQL4ソースの構文、エディター、コンパイラー、パターン、OOPなどに関するディスカッションを始めることは、すでに意味があるのでしょうか?
このトピックでは、バグレポートや叫び声はなく、建設的な議論のみをお願いします。