Aber ich habe nicht herausgefunden, wie ich das Makro überschreiben kann
Hier ist der Code:
#define MACROS_PREFIX(A) FAST_##A
bool Connect(string host = "localhost", int port = 6379)
{
return(MACROS_PREFIX(connect)(host, port));
}
bool FAST_connect(string host = "localhost", int port = 6379)
{
returntrue;
}
bool connect(string host = "localhost", int port = 6379)
{
returntrue;
}
es funktioniert jetzt, aber mit dem PräfixFAST_ , ich möchteMACROS_PREFIXaußer Kraft setzen, aber so, dassconnect(string host = "localhost",int port = 6379)aufgerufen wurde
Aber ich habe nicht herausgefunden, wie ich das Makro überschreiben kann
Hier ist der Code:
es funktioniert jetzt, aber mit dem PräfixFAST_ , ich möchteMACROS_PREFIXaußer Kraft setzen, aber so, dassconnect(string host = "localhost", int port = 6379)aufgerufen wurde
Aber ich möchte eine Makro-Substitution in MQL zu machen, um den Code-Text selbst zu minimieren, so muss ich:
#define USE_FAST // тут нужно что-нибудь сделать!bool connect(string h,int p) { } // код 1bool fast_connect(string h,int p) { } // код 2//+------------------------------------------------------------------+bool Connect(string host = "localhost", int port = 6379)
{
return connect(host, port); // вот тут нужен префикс и будет или connect(host, port); или fast_connect(host, port);
}
//+------------------------------------------------------------------+voidOnStart()
{
Connect();
}
//+------------------------------------------------------------------+
PZY: Wie würde ich __MQL5__- und __MQL4__-Makros zu diesem Abrakadabra hinzufügen, aber fast_xxx()-Funktionen werden niemals in MQL4-Code vorkommen - vom Wort NEVER
Ich danke Ihnen!
Aber ich habe nicht herausgefunden, wie ich das Makro überschreiben kann
Hier ist der Code:
es funktioniert jetzt, aber mit dem PräfixFAST_ , ich möchteMACROS_PREFIXaußer Kraft setzen, aber so, dassconnect(string host = "localhost",int port = 6379)aufgerufen wurde
Ich möchteMACROS_PREFIXaußer Kraft setzen, aberconnect(string host = "localhost", int port = 6379)aufrufen
Ich danke Ihnen!
Aber ich habe nicht herausgefunden, wie ich das Makro überschreiben kann
Hier ist der Code:
es funktioniert jetzt, aber mit dem PräfixFAST_ , ich möchteMACROS_PREFIXaußer Kraft setzen, aber so, dassconnect(string host = "localhost", int port = 6379)aufgerufen wurde
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
OOP, Vorlagen und Makros in mql5, Tipps und Tricks
Vladimir Simakov, 2020.02.18 05:56
Es ist seltsam, dass es funktioniert, aber es funktioniert nicht.
Es ist seltsam, dass es funktioniert, aber es funktioniert nicht.
Mein Makro hat zwei Parameter, aber Sie übergeben nur einen, also flucht der Compiler.
Danke... aber ich habe es immer noch nicht herausgefunden.... Wissenschaft aus der Hölle!!!!
Ich kann es nicht in Worten erklären, aber ich werde es in Notensprache versuchen.
Dieser Code funktioniert wie vorgesehen:
Aber ich möchte eine Makro-Substitution in MQL zu machen, um den Code-Text selbst zu minimieren, so muss ich:
Mein Makro hat zwei Parameter und Sie übergeben einen, deshalb kämpft der Compiler
Das funktioniert nicht.
Das funktioniert nicht.
Danke... aber ich habe es immer noch nicht herausgefunden.... Wissenschaft aus der Hölle!!!!
Ich kann es nicht in Worten erklären, aber ich werde es in Notensprache versuchen.
Dieser Code funktioniert wie vorgesehen:
aber ich möchte eine Makro-Substitution in MQL machen, um den Code-Text selbst zu minimieren, so dass ich es brauche:
ABER!!!
Das Makro CONNECT kann nicht durch #undef USE_FAST überschrieben werden.
damit ich tun kann, was ich will.
interessiert an den gestern vorgeschlagenen Optionen mit dem Zauberspruch #defaine abracadabra ##_
UPD:
Vladimir Simakov OK, ich werde versuchen, es herauszufinden
UPD:
HOORAY! ES HAT GEKLAPPT! (С)
Danke! Es hat geklappt, wie beabsichtigt!
PZY: Wie würde ich __MQL5__- und __MQL4__-Makros zu diesem Abrakadabra hinzufügen, aber fast_xxx()-Funktionen werden niemals in MQL4-Code vorkommen - vom Wort NEVER