どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 163

 
hoz:

ライブラリ hoz_LoggingToAnywhere@Library.mq4 があり、ヘッダファイル hoz_Base@Include.mqh から呼び出される。

ライブラリ hoz_LoggingToAnywhere@Library.mq4 をコンパイルすると、ログに表示されます。

行ってみると...。そして、そこで私は見た。

他のライブラリから このfPrint 関数を呼び出しても、どこにも非難されないのに、ヘッダーファイルからは...非難されるのです。なぜそうなのでしょうか。すでに右のシンボルからシンボルへコピーされている...。


この関数はパラメータに(...)を持つので、正確な合成が必要です。


のリンクです。

https://docs.mql4.com/ru/basis/preprosessor/import

インポートされた関数は コンパイル中のモジュールの外にあるため、コンパイラは渡されたパラメータが正しいかどうかをチェックすることができません。したがって、ランタイムエラーを避けるために、インポートされた関数に渡されるパラメータの正確な構成と順序を指定する必要があります。インポートされた関数(EX4とDLLモジュールの両方)に渡されるパラメータは、デフォルト値を持つことができません。

 
ilunga:

この関数はパラメータとして (...) を持っており、正確な構成が必要だからです。


を参照してください。

https://docs.mql4.com/ru/basis/preprosessor/import

インポートされた関数はコンパイル中のモジュールの外にあるため、コンパイラは渡されたパラメータが正しいかどうかをチェックすることができない。したがって、ランタイムエラーを避けるために、インポートされた関数に渡されるパラメータの正確な構成と順序を指定する必要があります。インポートされた関数(EX4とDLLモジュールの両方)に渡されるパラメータは、デフォルト値を持つことができません。


に従って、正しく機能をインポートしたわけです。

#import "hoz_LoggingToAnywhere@Library.ex4"
    void fPrint (string& fs_Text);
#import
#import "hoz_HandlingWithErrorS.ex4"
    string fErrorToString(int fi_Error);
    string fErrorDescription (int fi_Error);
#import

関数の型とパラメータはあるのですが...。そして、すでにこのような使い方をしていました。

fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

実際、ここでStringConcatenateという 括弧の中はすべて文字列型 であることは明らかで、私はインポート時にすでに宣言しています。

どこに問題があるのか?全く意味のないものが出てくる。これに変更しました。

string m = StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err));
   fPrint (m);

そして、エラーも出なくなった。でも、この表情は好きではありません。長くなっているんです。もっと短いのは?

 
hoz:


どこが問題なのか?

それは、あなたのアプローチの仕方にあります。正確には、技術文書を読もうとしないことです。いつも同じ「熊手」。もしよろしければ 単独で パラメータを参照渡しできる場合とできない場合を読む。

https://docs.mql4.com/ru/basis/variables/formal

わからなければ、とにかく暗記すること。

 
VladislavVG:

それは、あなたのアプローチの仕方にあります。具体的には、技術文書を読もうとしないことです。いつも同じ「熊手」。もしよろしければ 単独で パラメータを参照渡しできる場合とできない場合を読む。

https://docs.mql4.com/ru/basis/variables/formal

はっきりしない場合は、とにかく暗記すること。


実際、どこかで正解しています。でも、それは理解しようとしないのではなく、ちょっとボーっとして いるだけなんです。それが、私の仕事です。この問題は解決しました。ご叱責いただき、ありがとうございました考慮します。
 
hoz:

実際、どこかで正解しています。でも、それは理解しようとしないのではなく、ちょっとボーっとして いるだけなんです。それが、私の仕事です。この問題は解決しました。ご叱責いただき、ありがとうございました検討させていただきます。
コーナーで、豆に!
 
artmedia70:
コーナーで、豆に!


 

皆さん、fxbookのタブ表示を設定する(閉じる)方法をアドバイスしてください。ありがとうございます。


 
この問題は解決されました。
 

まだmql4は使いこなせていませんが、すでに少し前進しています。私はmql5のストラテジーテスターが好きです。私見ですが、より深いイメージを示してくれるし、テスターがあるからこそ、EAを mql5に変換 したいと思うのです。

しかし、1つは、mql5フォーラムで欠落している、多くのメッセージがない、フォーラムは非常にアクティブではありません。このフォーラムでmql5に関する質問をすることは可能でしょうか?

 
Forexman77:

まだmql4は使いこなせていませんが、すでに少し前進しています。mql5のストラテジーテスターが好きで、より深く状況を見ることができ、テスターがあるだけに、EAをmql5に変えたいと思います。

mql5のフォーラムは、メッセージが数件あるだけで、それほど活発ではありません。 このフォーラムでmql5に関する質問をすることは可能でしょうか?

MQL4と MQL5で トレーダーとプログラマーに人が分かれたと思うんです。MQL5の 人は、いろいろなものを作ってマーケットで売ることができますが、一般的なトレーダーはMQL4だけ でよく、手作業で取引する人はもちろんのこと、MQL4の人も必要です。自分で試してみて、OOPのことまで少しわかった。やってみて、学ぶ。きっと報われるはずです))。