エラー、バグ、質問 - ページ 1687

 
質問です。MQLの空のクラスのサイズは16バイトです(64ビットシステムの場合)。なぜ?8バイトは仮想テーブルへのポインターで占められているはずです(ドキュメントによると、MQLではすべてのクラスがこれを持っています)。 そして残りの8バイトは何によって占められているのでしょうか?
 
同僚の方、この問題に遭遇された方はいらっしゃいますか?今朝、端末がbiuld 1430に更新されました。そして、偶然にも、昨日、Expert Advisorを標準ライブラリ 経由でファイルを扱うように書き直しましたが(以前は標準のファイル操作では完全に成功しませんでした)、テストしていません - 朝に延期しています。そしてこれがその結果です。Expert Advisor はテスト中にファイルを見つけられず、FileIsExist 関数は常に false を返します。私の改造のせいなのか、アップデートのせいなのか、どこに原因があるのかわかりません。ドキュメントには、テスト時に MQL5/Tester/Filesフォルダにファイルを配置する必要があると書かれていることです。しかし、実際には経路が異なる。 ...{RoamingMetaQuotes} ...some hex crap...{Agent-127.0.1-3000} ...{MQL5Files.すなわち、少なくともドキュメントに間違いがあるのです。しかし、肝心のテスト開始時に、私のFileIsExist関数がOnInitに規定されており、最初にファイルにアクセスするのですが、そこに手動で置いたファイルが指定フォルダから消されてしまうのです。そこで質問なのですが、テスト中のファイルはどこに置くべきなのでしょうか?そして、まったく何が起こるか?
 
BlackTomcat:
同僚の方、この問題に遭遇された方はいらっしゃいますか?今朝、端末がbiuld 1430に更新されました。そして、偶然にも、昨日、Expert Advisorを標準ライブラリ 経由でファイルを扱うように書き直しましたが(以前は標準ファイル操作では完全に成功しませんでした)、テストしていません - 朝に延期しています。そしてこれがその結果です。Expert Advisor はテスト中にファイルを見つけられず、FileIsExist 関数は常に false を返します。私の改造のせいなのか、アップデートのせいなのか、どこに原因があるのかわかりません。ドキュメントには、テスト時に MQL5/Tester/Filesフォルダにファイルを配置する必要があると書かれていることです。しかし、実際には経路が異なる。 ...{RoamingMetaQuotes} ...some hex crap...{Agent-127.0.1-3000} ...{MQL5Files.すなわち、少なくともドキュメントに間違いがあるのです。しかし、肝心のテスト開始時に、私のFileIsExist関数がOnInitに規定されており、最初にファイルにアクセスするのですが、そこに手動で置いたファイルが指定フォルダから消されてしまうのです。そこで質問なのですが、テスト中のファイルはどこに置くべきなのでしょうか?そして、まったく何が起こるか?
さて、この問題はFILE_COMMONフラグを使用することで回避 できました。
このファイルは ...{RoamingMetaQuotesTerminal}CommonFiles フォルダーに置かれます。テスト中はそこから削除されることはなく、普通に読むことができます。
 

Question: MQL4フォーラムで自分の投稿を見つけるにはどうしたらいいですか?2年ほど前にコードを添付したスレッドが作成され、このコードが今になって面白くなってきたのですが、フォーラム検索は沈黙しています。私の出版物を見ても、このトピックはないのです。(削除済み?)

 

マクロが使用されたことがあるかないかを知るにはどうしたらよいですか?

 
fxsaber:

マクロが使用されたことがあるかないかを知るにはどうしたらよいですか?

このように

#ifndef __MY_MACROS__   // если макрос не использован
   #define __MY_MACROS__
//----------------------------------------
// тут ваш код использующий макрос
//----------------------------------------
#endif // __MY_MACROS__
 
coderex:

このように

もう一つの意味です。
#define  MACROS(A) A

void Func()
{
  MACROS(A) // Если закомментировать, то макрос ни разу не использовался
}

// Вот здесь хотелось бы понять, использовался ли хоть раз макрос или нет.
 
OnInitが定義されているかどうかをソースでチェックする方法を教えてください。
 
fxsaber:
他のことを指していたんです。
最も単純なものは、マクロ呼び出しカウンターをグローバル変数 に格納し、マクロ自身から上書きするものです。
 
Sergei Vladimirov:
最も単純なものは、マクロの呼び出しカウンターをグローバル変数 に入れ、マクロ自身から書き換えるものである。
そのようなバリエーションもありますが、残念ながらすべてのマクロに適しているわけではありません。