{
MT4Scope* scope = new MT4Scope(_Symbol, 222);
MT4Scope scope2(_Symbol, 223);
delete scope; // calls destructor
// here I want to call scope2 destructor, but I do not know how
// some additional code
}
intArrayMaximum(
constvoid& array[], // array for searchint count=WHOLE_ARRAY, // number of checked elementsint start=0// index to start checking with
);
MT5
intArrayMaximum(
constvoid& array[], // array for searchint start=0, // index to start checking withint count=WHOLE_ARRAY// number of checked elements
);
まだ理解できていませんが・・・。MQL4のインポートを void*と宣言することは出来ないと思います。インポートでは特定のデータ型を使用する必要があり、そのデータ型ではDLLインポートしか使用できません。もし、同じDLL関数を異なるデータ型で使いたい場合は、https://www.mql5.com/en/forum/148934 のような回避策がない限り、問題が発生します。
実際、私はある回避策を使っていますが、これはかなり弱いもので、どんな型でも汎用構造体にラップしてしまいます。汎用構造体をパラメータとして受け入れることは、将来のリリースで変更される可能性があります。ただし、これは配列では動作しません。
実は、私はある回避策を使っているのですが、これは非常に弱く、あらゆる型を汎用構造体にラップしてしまいます。汎用構造体をパラメータとして受け入れることは、将来のリリースで変更される可能性があります。
...どうやら、私が間違っているようです。私たちが忘れているのは、MQL4では関数の オーバーロードができるようになったので、このようなことができるようになったということです。
...どうやら私が間違っているようです。私たちが忘れているのは、MQL4では関数のオーバーロードができるようになったので、このようなことができるようになったということです。
もちろん、それは私が最初から話していることです :)
今のところ、私のイン ポートは以下のような感じです。
そして、このリスト(1つのインポート用)が1年後にどれだけ長くなっているか...。
また、インクルード ファイルに依存するコードのコンパイルに小さな不一致があることにも気づきました。
複数のプロジェクトが 同じインクルードを共有し、インクルードファイルが変更された場合、最初のプロジェクトはそれを検知して再コンパイルしますが、次のプロジェクトはそうしません。しかし、これは深刻な問題ではありません(ex4はいつでも削除できます)。
今日は検索するのが面倒なので、簡単な回答だけお願いします。scope2が ブロック境界に到達する前に破壊することは可能でしょうか?私はそうは思いませんが、質問する方が良いでしょう。
いいえ。
ありがとうございます。
MT4 600+とMT5で「ArrayMaximum」が異なるのはなぜですか? MT4の構文をMT5の構文に移行した理由は、両方で動作するアプリケーションを簡単に開発できるようにするためだと思ったのですが......?
MT4
MT5
MT4 600+とMT5で「ArrayMaximum」が異なるのはなぜですか? MT4の構文をMT5の構文に移行した理由は、両方で動作するアプリケーションを簡単に開発できるようにするためだと思ったのですが......?