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

 
Alexandr Bryzgalov:

mql5はなぜmajikをプラスにしかしなかったのか?

ネガマジ大好きだぜ(((o(*゚▽゚*)o)))

デニス・キリチェンコ
透明でないものは、本当に残念です...。誰が何に導かれて作ったのか、わからない。いろいろな組織のいろいろな人がいる感じ...。

デニス・キリチェンコアレクサンダー・ブリスガロフ

は曖昧なものではありません。

INT(LONG)はUINT(ULONG)の半分の範囲を取るだけです。

タイプキャスティングは、何の制限もなく機能します。

---

自分で確認することができます。

long  a=-100

ulong ua=(ulong)a;

long b=(long)ua;

Print(a, " - ", ua, " - ", b);


すべてが思い通りに動く。

ネガティブマジックを使用する場合があります。

 
Vladimir Karputov:

CPositionInfo クラスから引用しています。

bool CPositionInfo::SelectByIndex(const int index)

人里離れたところにある)

この例は、ヘルプセクションの"アカウント情報"で非常に期待されています。

 
Alexandr Bryzgalov:
人里離れたところにある)
標準ライブラリで 一日に100回作業すれば、すべてが非常に近いことがわかります :)
 
Vladimir Karputov:
標準ライブラリで 一日に100回作業すれば、すべてが非常に近いことがわかります :)
レファレンス
 
o_O:

デニス・キリチェンコアレクサンダー・ブリスガロフ

は曖昧なものではありません。

INT(LONG)はUINT(ULONG)から半分の範囲を取っただけです。

型変換

---

ぜひ、ご自身でお確かめください。

long  a=-100

ulong ua=(ulong)a;

long b=(long)ua;

Print(a, " - ", ua, " - ", b);


すべての機能が正常に動作する

ネガティブマジックが使用可能

ほら、マジック-1ではコンパイルしてうまく動くし、このマジックを使って見つけることができる。

私はイライラし始めた。

も沈黙している。

uint Magik=(-1);
が、それでもネガティブではなく、とてもクソポジティブです)
 

Alexandr Bryzgalov:

のみで、まだネガティブではなく、クソポジティブです)。

は何も変わりません。
 
o_O:
intの場合は-1です。

要は、magikを-1にしてから0と比較すると、0より大きくなってしまうのです。

ということで、半分のuintと比較するか、intに変換する必要があります。

技あり
 
Alexandr Bryzgalov:

というのは、magikを-1して、nullと比較すると、nullより大きくなってしまうのです。

ここで、半分のuintと比較するか、intに変換する必要があります。

技あり

intとuintを比較する場合、コンパイラはそのような無効な比較について警告を出すはずです。

どのような場合でも、同じ型に変換する必要があります。

 

コンパイラのオプティマイザに関連する特定のバグがあるようです。

大きなコードが思うように動かない - Releaseの時だけ遅くなる(Debugは正常)。

一日踊ってみてわかったのですが、ObjectFindを一箇所だけコメントアウトするとラグがなくなります。

しかし、同じ問題で小さいサイズのサンプルを作成することができませんでした。

ObjectFindは元のコードに残したまま、その前後に些細なPrintを追加してみました。しかも、ラグがないのですプリントを外すとまた遅くなる

コンパイラのオプティマイザが行き過ぎたようだ。小さなリプレイコードが作れないので、CDに どう書けば いいのか見当もつきません。そして、大作を書いたら地獄を見ることになる。

このような場合、どうしたらよいのでしょうか。再現性がある限り、大きなコードを切り刻むことも選択肢の一つでしょうね。しかし、このプロジェクトは多くのライブラリで構成されています。もう丸一日かかってしまったので、これ以上やりたくありません。

 

開発者の皆様へ

ウィザードのように変数のデバッガーツールチップを作ってください。

そこで、変数の上にマウスを置くと、その変数の現在の値がツールチップでポップアップ表示される。とても便利でしょう。