GetLastError()は、特殊変数 last_error をクリアする。というように、例えば if (GetLastError() == 4066) のように、期待される以外のすべての可能性を隠します。
last_error自体を使いたいのですが、見えません。
MT5 GetLastError()で_LastError()変数がゼロにならない。ありがたいことです。ResetLastError()は、このために発明されたのです!
そして、次のようにユーザーエラーを番号付けするSetUserError(user_error)関数も追加しています。
_LastError = 65536 + user_error.
明らかに、1つの変数が最後のエラーを格納するために使用されているので、本質的に不必要な微調整です。
SetLastErrorを追加すれば十分でしょう!理想的には、last_error を可視化することです。
高度なプログラマーなら、自分でエラー番号をつける方法を考えるだろうし、それ以外の人はGetLastErrorで十分だ。
MT4のこの機能が本当に恋しいです、どうしたらいいですか?
GetLastError()はなくても大丈夫です。期待される エラー以外のすべての可能な エラーは、「上級」プログラマーの曲がった手によって隠されてしまうのです。エラー値を変数に保存して、それだけを解析するというのは、本当に必要な「高度なプログラミング」の特別な方法なのでしょうか?
エラー処理は、プログラミングの真髄です。何かを見くびっている...私は1つのプログラムで多くの関数を異なるファイルで使用しており、ある関数の特定のエラーをチェックしたいのですが、他の関数で先に発生した可能性のある他のエラーを無効化することはできません。実はこの問題、すでに解決しているのですが...。保存する必要があるものを消去する惨めなGetLastErrorを 2つのシンプルな関数・・・SetErrorとGetErrorに置き換えるのはそれほど難しくありませんでした・・・しかし私は常にそれらをオンにしなければならないのです・・・・。
エラー処理は、プログラミングの 真髄です。あなたは何かを見くびっている...私は1つのプログラムで多くの関数を異なるファイルで使用しており、ある関数の特定のエラーをチェックしたいのですが、他の関数で先に発生した可能性のある他のエラーを無効化することはできません。実はこの問題、すでに解決しているのですが...。保存する必要があるものを消去する惨めなGetLastErrorを、2つのシンプルな関数・・・SetErrorとGetErrorに置き換えるのはそれほど難しくありませんでしたが、私は常にそれらをオンにしなければなりませんでした・・・・・。
エラーを累積するのではなく、発生した場所や時間ごとに処理することを妨げるものは何ですか?ちなみに、蓄積する必要がある場合は - 配列を作り、それを埋めて - 必要な場所で分析します。どちらの場合も、getLastError() で十分です。
プログラミングの本質については、よくやった、ありがとう・・・・。
個人的には、どんな場合にも対応できるように、エラーが発生しそうな場所にはGetLastErrorを挿入しておくのが飽きないです。
本当に、なぜそんなことをするのですか?
エラーが発生した場合は、その都度対応する必要があります。
こういう構成で書いているんですね。
OrderSend(...)。
if(GetLastError()>0) { ...}
それはおかしい。
vit46:
まあ、わからないことがあっても、それはあなたの問題ですからね :)個人的には、どんな場合にも対応できるように、エラーが発生しそうな場所にはGetLastErrorを挿入しておくのが飽きないです。(あとはどこで発生するか?)なるべくエラーにならないようにコードを書いています。しかし、エラー4066のような特定の状況は、私が望むときにいつでも発生する可能性があり、それは私に依存するものではありません。そして、そのようなエラーに対するハンドリングコードを書かなければならないのです。しかし、この邪悪なGetLastErrorはすべてのエラーをヌルにしてしまい、プログラム全体を通過してくれません。エラーチェックは最後に一度だけしているのですが、わかりませんか?MT5でほぼ思い通りになったのはなぜか?おそらく、私のリクエストのせいでしょう :)
........と明示的な型変換を行います :)
:)上級者は、与えられた機会をどう使うかを知っているから上級者なのだ......」と。提供される機会が十分でない場合は、プラスに書きましょう。何が問題なのか?
この問題は解決した!とすでに書きました。MQL4言語のデメリットである、関数を追加するのが簡単なんですが...。を変えろとは言いません。
本当に、なぜそんなことをするのですか?
エラーが発生した場合は、その都度対応する必要があります。
こういう構成で書いているんですね。
OrderSend(...)。
if (GetLastError()>0) { ...}
というのは誤りです。
いや......こうやって書くとね。
OrderSend(...); if (GetError()==конкретный номер){ // код обработки сброс ошибки или наоборот SetError(0); } else if(...) ... ... // и в конце программы if (GetError()) >0){ // гдето необработанное исключение или ошибка номер... // просто сообщение об ошибке }

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
GetLastError()は、特殊変数 last_error をクリアする。というように、例えば if (GetLastError() == 4066) のように、期待される以外のすべての可能性を隠します。
last_error自体を使いたいのですが、見えません。
MT5 GetLastError()で_LastError()変数がクリアされない。ありがたいことです。ResetLastError()は、このために発明されたのです!
そして、次のようにユーザーエラーを 番号付けするSetUserError(user_error)関数も追加しています。
_LastError = 65536 + user_error.
明らかに、1つの変数が最後のエラーを格納するために使用されているので、本質的に不必要な微調整です。
SetLastErrorを追加すれば十分でしょう!理想的には、last_error を可視化することです。
高度なプログラマーなら、エラーに番号を振る方法を自分で理解するでしょうし、それ以外の人はGetLastErrorで十分でしょう。
MT4のこの機能が本当に恋しいです、どうしたらいいですか?