Я ...の衝撃、心地よい衝撃。レジストリの非同期ロードを確保するために、変更を一度に複数のチャートに配置する......。すべてが安定して動いています。APIでパラメータ渡しの 原理を変えた、つまり戻り値が使われるところで、参照渡しで配列を適用した、これはmqlでは++の観点でアドレス、またはポインタを渡すことを意味します。しかし、APIの単純なデータ型はすべて参照渡しなので、10年前に説明されたこの方法は時代錯誤だと思いました...。しかし、どうやらそれは私のミスであり、近視眼的であったようで、単純な型はそれほど苦もなくAPIに渡せないということです。ご指摘いただき、ありがとうございました。)))
Я ...の衝撃、心地よい衝撃。レジストリの非同期ロードを確保するために、変更を一度に複数のチャートに配置する......。すべてが安定して動いています。APIでパラメータ渡しの 原理を変えた、つまり戻り値が使われるところで、参照渡しで配列を適用した、これはmqlでは++の観点でアドレス、またはポインタを渡すことを意味します。しかし、10年前に説明したこのやり方は、APIの単純なデータ型はすべて参照渡しなので、時代錯誤だと思ったのですが......とにかく。しかし、どうやらそれは私のミスであり、近視眼的であったようで、単純な型はそれほど苦もなくAPIに渡せないということです。ご指摘いただき、ありがとうございました。)))
Retrieves the type and data for the specified value name associated with an open registry key. To ensure that any string values (REG_SZ, REG_MULTI_SZ, and REG_EXPAND_SZ) returned are null-terminated, use the RegGetValue function. Syntax Parameters hKey [in] lpValueName [in, optional] The name of the registry value. If lpValueName is NULL or an...
自分の疑問に答えてくれることが大事なんです。
CTrade::Buy, CTrade::Sell, CTrade::ClosePositionメソッド 用
falseが返ってきたら、Retcodeは無視するということでしょうか?
trueが返された場合、Retcodeは常に正しい値で埋められるということでしょうか?
ありがとうございます。
同僚よ、助けてくれ。
レジストリの操作方法を考えていて、試しに簡単なExpert Advisorを作ってみました。システムレジストリからのデータ読み込みは問題なく行えますが、書き込みに問題があり、MTやメモリクラッシュが発生します...。(((
もしかしたら、私の目はもうびしょびしょで、当たり前のことが見えていないのかもしれない...。
同僚よ、助けてくれ。
レジストリの操作方法を考えていて、試しに簡単なExpert Advisorを作ってみました。システムレジストリからのデータ読み込みは問題なく行えますが、書き込みに問題があり、MTやメモリクラッシュが発生します...。(((
もしかしたら、私の目はもうびしょびしょで、当たり前のことが見えていないのかもしれない...。
ここはシンプルでいい。API関数の呼び出しの前後で、ログに何かを出力する。クラッシュした後、ログにクラッシュした場所が表示されます。
極めてシンプルなはずです。API関数の呼び出しの前後で、ログに何かを表示する。クラッシュした後、ログを見ればどこでクラッシュしたのかがわかります。
そのため、ログを書き込む暇もなく、エラーで端末が終了してしまうのです。(( メモリリークが発生しているものと思われます。しかし、ダイナミック・オブジェクトは使用されない(新規)。どう対処していいかわからず、そんな悩みを探しています;(
そのため、ログを書き込む暇もなく、エラーで端末が終了してしまうのです。(( メモリリークが発生しているものと思われます。しかし、ダイナミック・オブジェクトは使用されない(新規)。どう対処したらいいのか、どうしたらこのような問題を発見できるのかわからない;(
あなたの例を少しいじってみました。
Я ...の衝撃、心地よい衝撃。レジストリの非同期ロードを確保するために、変更を一度に複数のチャートに配置する......。すべてが安定して動いています。APIでパラメータ渡しの 原理を変えた、つまり戻り値が使われるところで、参照渡しで配列を適用した、これはmqlでは++の観点でアドレス、またはポインタを渡すことを意味します。しかし、APIの単純なデータ型はすべて参照渡しなので、10年前に説明されたこの方法は時代錯誤だと思いました...。しかし、どうやらそれは私のミスであり、近視眼的であったようで、単純な型はそれほど苦もなくAPIに渡せないということです。ご指摘いただき、ありがとうございました。)))
Я ...の衝撃、心地よい衝撃。レジストリの非同期ロードを確保するために、変更を一度に複数のチャートに配置する......。すべてが安定して動いています。APIでパラメータ渡しの 原理を変えた、つまり戻り値が使われるところで、参照渡しで配列を適用した、これはmqlでは++の観点でアドレス、またはポインタを渡すことを意味します。しかし、10年前に説明したこのやり方は、APIの単純なデータ型はすべて参照渡しなので、時代錯誤だと思ったのですが......とにかく。しかし、どうやらそれは私のミスであり、近視眼的であったようで、単純な型はそれほど苦もなくAPIに渡せないということです。ご指摘いただき、ありがとうございました。)))
以前MT4で、API関数へのポインタを1次元配列で渡すことを教わったことがあります。もし、今の時点で何かが変わっていて、それを確認できる人がいれば、新しいアプローチでやっていくつもりです。
でも、まだタイプがめちゃくちゃだったんですね。特にWindowsのロングとMQL5のロングはサイズが異なる。
もしかしたら、他にも何か違いが見つかるかもしれません。
かつてMT4では、API関数へのポインタを1次元配列で渡すことが教えられていました。もし、現時点で何かが変わっていて、誰かが確認してくれれば、新しい方法を使うつもりです。
ただ、タイプに迷うこともあったようですね。特にWindowsのロングとMQL5のロングはサイズが異なる。
もしかしたら、他にも何か違いが見つかるかもしれません。
すべての違いを確認しました)))ありがとうございました。
問題は、レジストリに保存されるデータの大きさだけです。ドキュメントの例(https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911(v=vs.85).aspx)によると、修正したファイル(ushort buff[1024];) よりもう少し多くのデータを格納できるようです。正しく理解できていますか?すべての違いを見た)))ありがとうございました。
問題は、レジストリに保存されるデータの大きさだけです。ドキュメントの例(https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911(v=vs.85).aspx)によると、固定ファイル(ushort buff[1024]; )よりもう少し多くのデータを格納することができるようです。私の読みは正しいのでしょうか?そうですね。データはもっとあってもいい。ビッグデータでは、まず長さを要求し、次に配列のサイズを動的に変更し、すべてのデータを取得するのが正しい。
うーん...。私がAPIをよく見ていなかったのかもしれませんが、そのような機能は見当たりませんでした...。そして、それはおそらく便利なものでしょう。
他に何かコツがあれば...。もってのほかdoubleなどの数値を配列のcharに変換するには?つまり、あるAPIでは数値をポインタとして渡すことが要求されているのです。ポインターは1次元配列として渡され...文字列の場合は、StringToShortArrayと StringToCharArrayの関数が 用意されているのでわかりやすいのですが、数字の場合はバイト配列(char)に変換する方法がまだよくわからないんです。