エラー、バグ、質問 - ページ 1543 1...153615371538153915401541154215431544154515461547154815491550...3185 新しいコメント Slava 2016.03.31 07:33 #15421 comp:例えば、現在ObjectSetIntegerの記述でであるべきです。すべての記事を最後までお読みください。prop_id [in] オブジェクトプロパティの識別子。ENUM_OBJECT_PROPERTY_INTEGER 列挙の値のいずれかとすることができる。 すでにお話したとおりです。サーベルを手にすることなく、ドキュメントを注意深く読んでください。 削除済み 2016.03.31 07:52 #15422 Slawa:スレッドを最後まで読む もう言ったでしょ?サーベルを手にすることなく、ドキュメントをよく読んでください。VERYを最後までよく読んでください。引用元はこちらオブジェクトのプロパティの識別子。ENUM_OBJECT_PROPERTY_INTEGERenumeration の値のいずれかを 指定 する。であるべきです。オブジェクトのプロパティ識別子。Value はENUM_OBJECT_PROPERTY_INTEGERenumeration の値の一つ で なければならない。この型に明示的なゴーストが必要なことは、5でコンパイルされた唯一のバリアントで 確認されています(自分で確認してみてください)。このゴーストがない場合、コンパイラは対応するオーバーロードがないことを訴えます。 削除済み 2016.03.31 07:59 #15423 このトリックは知りませんでした。mq4ファイルを5つのメタエディタで開くと、ex4にコンパイルされるのです Vladislav Andruschenko 2016.03.31 08:03 #15424 ワンコンパイラワンエディタ Slava 2016.03.31 08:07 #15425 つまり、読み終わったときに 「この値は、ENUM_OBJECT_PROPERTY_INTEGERという 列挙型の値のいずれかである可能性が ある」と思ったのです。あるいは、そうでない場合もあります。また、may not beはドキュメントに明記されていないので、禁止されていないものは許可されます。社会生活の原理をプログラミングに拡張しているのですから」。そういえば、この関数のパラメータを設定するとき、MetaEditorは対応するパラメータの型をどう伝えたのでしょうか? Andrey Dik 2016.03.31 08:14 #15426 MQLのヘルプには曖昧な点が多くあります。そういう意味では、コンプの言う通り、ヘルプの読み方の解釈は少ない方がいいんです。 削除済み 2016.03.31 08:17 #15427 Slawa:つまり、読み終わったときに 「この値は列挙型ENUM_OBJECT_PROPERTY_INTEGERの 値のいずれかである可能性が ある」と考えるのです。あるいは、そうでない場合もあります。また、may not beはドキュメントに明記されていないので、禁止されていないものは許可されます。社会生活の原理をプログラミングに拡張しているのですから」。いや、そんなことはないだろう。MT4で正しくコンパイルされたコードであれば、MT5でも正しくコンパイルされるはずだと思ったからです。そうでないときは、調べ始めたんです。MT4とMT5でコードを確認し、確認してください。class CHARTOBJECT { public: template <typename T> void SetProperty( const int id, const T Value, const int Modifier = 0 ) const { const string sType = typename(T); if (sType == "double") ::ObjectSetDouble(0, "", id, Modifier, (double)Value); else if (sType == "string") ::ObjectSetString(0, "", id, Modifier, (string)Value); else ::ObjectSetInteger(0, "", id, Modifier, (long)Value); return; } virtual void operator =( const string Value ) const { this.SetProperty(OBJPROP_TEXT, Value); return; } };そういえば、この関数のパラメータを打ち込むとき、MetaEditorは関連するパラメータの種類をどう伝えたのだろうか。上にあげた仕様で正しく補正してくれました。ドキュメントではintになっています。 Slava 2016.03.31 08:27 #15428 comp:いや、そんなことはないだろう。MT4でエラーなくコンパイルされるのであれば、MT5でもエラーなくコンパイルされるはずだと思ったのですが。そうでないときは、調べ始めたんです。MT4とMT5でコードを確認し、確認してください。なぜ?MT4とMT5は本質的に異なるアーキテクチャを持つMQL4を古い構文から新しい構文(MQL4+と呼ばれるもの)に翻訳する際、列挙を含め多くのものが欠けている古いMQL4の構文を振り返る必要がありました。 Slava 2016.03.31 08:31 #15429 1週間だけ読んでみよう。書く人ではなく、読む人になりましょう。ここで話していることはすべて、このフォーラムだけでなく、MQL4.comでも何度も議論されてきたことです。 削除済み 2016.03.31 08:33 #15430 Slawa:それはなぜでしょうか?MT4とMT5では、最初からアーキテクチャが異なるMQL4を古い構文から新しい構文(MQL4+と呼ばれるもの)に移行する際、列挙を含め多くのものが欠けていた以前のMQL4構文を振り返る必要がありました。 長い間、議論をしても成功することはない。実は、ドキュメントがintではなく、関数名を入力するときのヒントのようになっていれば、コンパイラに叱られた原因がすぐにわかったのですが(テンプレートを使った例ではわからなかった)。なぜなら、ドキュメントによると、コードはそこにintと "can "としてコンパイルされているはずだからです。ドキュメントとツールチップを一致させることを阻むものは何なのか--。しかし、誤解が生じた場合は、ドキュメントではなく、ツールチップに表示されている内容を見た方が良いということを、今後覚えておこうと思います。 1...153615371538153915401541154215431544154515461547154815491550...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
例えば、現在ObjectSetIntegerの記述で
であるべきです。
すべての記事を最後までお読みください。
prop_id
[in] オブジェクトプロパティの識別子。ENUM_OBJECT_PROPERTY_INTEGER 列挙の値のいずれかとすることができる。
スレッドを最後まで読む
もう言ったでしょ?サーベルを手にすることなく、ドキュメントをよく読んでください。VERYを最後までよく読んでください。引用元はこちら
オブジェクトのプロパティの識別子。ENUM_OBJECT_PROPERTY_INTEGERenumeration の値のいずれかを 指定 する。
であるべきです。
オブジェクトのプロパティ識別子。Value はENUM_OBJECT_PROPERTY_INTEGERenumeration の値の一つ で なければならない。
この型に明示的なゴーストが必要なことは、5でコンパイルされた唯一のバリアントで 確認されています(自分で確認してみてください)。このゴーストがない場合、コンパイラは対応するオーバーロードがないことを訴えます。
つまり、読み終わったときに 「この値は、ENUM_OBJECT_PROPERTY_INTEGERという 列挙型の値のいずれかである可能性が ある」と思ったのです。あるいは、そうでない場合もあります。また、may not beはドキュメントに明記されていないので、禁止されていないものは許可されます。社会生活の原理をプログラミングに拡張しているのですから」。
そういえば、この関数のパラメータを設定するとき、MetaEditorは対応するパラメータの型をどう伝えたのでしょうか?
つまり、読み終わったときに 「この値は列挙型ENUM_OBJECT_PROPERTY_INTEGERの 値のいずれかである可能性が ある」と考えるのです。あるいは、そうでない場合もあります。また、may not beはドキュメントに明記されていないので、禁止されていないものは許可されます。社会生活の原理をプログラミングに拡張しているのですから」。
いや、そんなことはないだろう。MT4で正しくコンパイルされたコードであれば、MT5でも正しくコンパイルされるはずだと思ったからです。そうでないときは、調べ始めたんです。MT4とMT5でコードを確認し、確認してください。
そういえば、この関数のパラメータを打ち込むとき、MetaEditorは関連するパラメータの種類をどう伝えたのだろうか。
上にあげた仕様で正しく補正してくれました。ドキュメントではintになっています。
いや、そんなことはないだろう。MT4でエラーなくコンパイルされるのであれば、MT5でもエラーなくコンパイルされるはずだと思ったのですが。そうでないときは、調べ始めたんです。MT4とMT5でコードを確認し、確認してください。
なぜ?
MT4とMT5は本質的に異なるアーキテクチャを持つ
MQL4を古い構文から新しい構文(MQL4+と呼ばれるもの)に翻訳する際、列挙を含め多くのものが欠けている古いMQL4の構文を振り返る必要がありました。
1週間だけ読んでみよう。書く人ではなく、読む人になりましょう。
ここで話していることはすべて、このフォーラムだけでなく、MQL4.comでも何度も議論されてきたことです。
それはなぜでしょうか?
MT4とMT5では、最初からアーキテクチャが異なる
MQL4を古い構文から新しい構文(MQL4+と呼ばれるもの)に移行する際、列挙を含め多くのものが欠けていた以前のMQL4構文を振り返る必要がありました。