#ifdef __MQL5__#define mql5 true#else
#define mql5 false#endif
constbool isMQL5 = mql5;
conststring txt_1000symbols = "Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания""автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные""экспертные системы, предназначенные для работы в режиме реального времени, но и создавать собственные графические инструменты, помогающие принимать торговые решения.""MQL5 основан на концепции широко распространенного языка программирования С++, по сравнению с MQL4 в нем добавлены перечисления, структуры, классы и обработка событий."" Благодаря расширению числа встроенных основных типов, взаимодействие исполняемых программ на MQL5 с другими приложениями ""посредством dll максимально облегчено. Синтаксис языка MQL5 подобен синтаксису С++, и это позволяет легко переносить на него программы из современных языков ""программирования. Для целей изучения языка все темы сгруппированы по следующим разделам.\n";
//+------------------------------------------------------------------+voidOnStart()
{
if(isMQL5) Print(txt_1000symbols);
Print("end");
}
//+------------------------------------------------------------------+
どの端末(MT4/MT5)でコードを実行しているかを知るにはどうしたらよいですか?
1つの真偽の変数で十分です
どの端末(MT4/MT5)でコードを実行しているかを知るにはどうしたらよいですか?
1つの真偽の変数で十分です
OK、でもマクロの中を見たい、単純なものである可能性が高いです。
UPDです。
OK、でもマクロの中を見たい、単純なものである可能性が高いです。
UPDです。
神聖な意味とは?
神聖な意味とは何でしょうか?
コンパイラをチェックし、それが「正しいコンパイラ」であれば、コンパイル段階で不要なものをすべて捨ててくれるはずです。
をコンパイルして、.ex5 のサイズに注目してください ;)
SZY: if() の中にisMQL5 ,mql5 , const 修飾子を削除することができます - 一般的に、それは正しいコンパイラ です。
そのようなコードがあるのです。
mt4は2つのEAから呼び出された場合、メモリ内にdllの新しいコピーを作成しない、私はdll自体を編集したくない(それは100%満足している)、それは5回mydll.dllファイルをコピーする方が簡単です。
以下のようなマクロが必要です。
しかし、私はマクロ、dllnumがない場合、それは "mydll.dll " になることを確認したい。
UPDです。
これで解決
UPD2:解決していない((。
'mydll02.dll' - グローバルスコープでの式は許可されていません。
そのようなコードがあるのです。
mt4は2つのEAから呼び出された場合、メモリ内にdllの新しいコピーを作成しない、私はdll自体を編集したくない(それは100%満足している)、それは5回mydll.dllファイルをコピーする方が簡単です。
以下のようなマクロが必要です。
しかし、私はマクロ、dllnumがない場合、それは "mydll.dll " になることを確認したい。
UPDです。
これで解決
UPD2:解決していない((。
'mydll02.dll' - グローバルスコープでの式は許可されていません。
うまくいかないんだろうな。
DEF_QUOTES(a##0##b.dll)
ここでは有効なトークンが得られない。一般に、mclは以下のことができるはずです。
が、残念なことに、よく言われるように、あなたはC++でここにいないのです))
うまくいかないんだろうな。
では有効なトークンが得られません。実は、mclは、以下のことができるはずです。
が、残念ながら、よく言われるように、これはC++ではないのです))
むむ
少なくとも、トークンをマクロでインクルードしようとしたのですが...また失敗しました。
'#include' - 二重引用符または角括弧 < が必要です。
'#include' - グローバルスコープでの表現は禁止されています。
何のためにロウソクを燃やしているのか、わからないんです。そういうことなんでしょうね。
修正されるコンフィグがある場合に便利なのは認めますが。
追記:もし、まだ本当にやりたいのなら、name_dll(ドットなし)を試してみてください、多分、それは離陸するでしょう。だから、うまくいくんでしょうね。
#import はファイル名を想定しています。
何のためにロウソクを燃やしているのか、わからないんです。
dllのコネクションマネージャーをやりたくないのですが、MT4ではなぜか2つのEAから2回dllを呼び出すと、新しいdllコピーがメモリに作成されません(dllには静的オブジェクト、.Net上のラッパー、1つのdllを実行するとクラッシュ、2種類のファイルは問題なく実行できます)。
というわけで、早速ですが、mylib.dllファイルをmylib02.dllにコピーするだけで、すべて問題なく動作します...。が、マクロ置換をグローバルに宣言したい