Ma non sono nemmeno riuscito ad implementarlo per diverse librerie. Per collegare diverse librerie con tali macro in una linea e chiamare OnTick per tutte le librerie.
Non capisco bene nemmeno un esempio, cosa voglio ottenere. Puoi mostrarmelo?
ZZZ Per quanto riguarda il gestore, vedere EventBase. EventBase.mqh qui. Stupidamente rendeva tutti eredi e quando un nuovo oggetto appariva, il suo puntatore andava in una lista comune, che veniva chiamata da un ciclo for in ogni evento On.
Per collegare diverse librerie con tali macro in una linea, e chiamare OnTick per chiamare tutte le librerie OnTick.
Fare una macro wrapper intorno all'importazione che forma una classe per nome della libreria (class##libname) e usa il contesto per la chiamata all'interno del wrapper (libname::oninit)
e la classe viene scaricata nel gestore di cui sopra.
Chiamo la funzioneIndicatorParameters da expert, ma ottengo l'errore 4014. Che cosa può essere - si prega di consigliare? Costruire 1960.
Se avete 3 inludniks, allora il mio codice sopra dovrebbe funzionare, ma per ogni classe dovrebbe prescrivere sostituzioni macro, ecco il mio esempio, sembra funzionare, ma controllerò ancora:
e nel codice Expert Advisor includo solo un #include <fileMyclass.mqh>
nel tuo esempio, tutti e tre i file devono essere chiusi (in fondo al codice) con le mie sostituzioni macro (e sostituire i nomi m_classe2 , m_classe3...)
Andrey Khatimlianskii:
Soluzione già suggerita per una classe di un tipo: ereditare da CObject e aggiungere una sostituzione macro al class manager che memorizzerà tutte le istanze aggiunte in CArrayObj, lo attraverserà e chiamerà la funzione OnXXX richiesta.
Non sono nemmeno riuscito a implementare questo per diverse librerie. Per collegare diverse librerie con tali macro in una linea, e per chiamare OnTick di tutte le librerie.
L'esempio è necessario, non so come e non ha funzionato con "sostituzione macro in class manager"
È un po' complicato per me, così l'ho cercato su Google.
Non sarà bello, ma potete ridurlo a qualcosa del genere:
// for libsample#import "libsample.ex5"
IMPORT_EA_INTERFACE // здесь список импортируемых функций. они по идее одинаковые, поэтому можно в отдельный дефайн#import
DECLARE_AND_REGISTER(libsample) // здесь генерация класса-обертки для libsample который обернет импортированные функции и зарегистрируется в менеджере
Ma non sono nemmeno riuscito ad implementarlo per diverse librerie. Per collegare diverse librerie con tali macro in una linea e chiamare OnTick per tutte le librerie.
Non capisco bene nemmeno un esempio, cosa voglio ottenere. Puoi mostrarmelo?
ZZZ Per quanto riguarda il gestore, vedere EventBase. EventBase.mqh qui. Stupidamente rendeva tutti eredi e quando un nuovo oggetto appariva, il suo puntatore andava in una lista comune, che veniva chiamata da un ciclo for in ogni evento On.
Non riesco nemmeno ad avere un esempio di quello che voglio ottenere. Puoi mostrarmelo?
MyClass_1.mqh:
MyClass_2.mqh:
Esperto.mq5:
Per ottenere tutte e 3 le stampanti come risultato dell'esecuzione: "Init 1", "Init 2" e "Init EA"
Ciao a tutti.
Chiamo la funzioneIndicatorParameters da expert, ma ottengo l'errore 4014. Che cosa può essere - si prega di consigliare? Costruire 1960.
Per collegare diverse librerie con tali macro in una linea, e chiamare OnTick per chiamare tutte le librerie OnTick.
Fare una macro wrapper intorno all'importazione che forma una classe per nome della libreria (class##libname) e usa il contesto per la chiamata all'interno del wrapper (libname::oninit)
e la classe viene scaricata nel gestore di cui sopra.
ma per ogni lib una linea separata.
Fare una macro wrapper intorno all'importazione che forma una classe con il nome della libreria (class##libname)
Questo è un po' complicato per me, quindi lo cercherò su Google.
Ciao a tutti.
Chiamo la funzioneIndicatorParameters da expert, ma ottengo l'errore 4014. Che cosa può essere - si prega di consigliare? Costruire 1960.
Se avete 3 inludniks, allora il mio codice sopra dovrebbe funzionare, ma per ogni classe dovrebbe prescrivere sostituzioni macro, ecco il mio esempio, sembra funzionare, ma controllerò ancora:
e nel codice Expert Advisor includo solo un #include <fileMyclass.mqh>
nel tuo esempio, tutti e tre i file devono essere chiusi (in fondo al codice) con le mie sostituzioni macro (e sostituire i nomi m_classe2 , m_classe3...)
Soluzione già suggerita per una classe di un tipo: ereditare da CObject e aggiungere una sostituzione macro al class manager che memorizzerà tutte le istanze aggiunte in CArrayObj, lo attraverserà e chiamerà la funzione OnXXX richiesta.
Non sono nemmeno riuscito a implementare questo per diverse librerie. Per collegare diverse librerie con tali macro in una linea, e per chiamare OnTick di tutte le librerie.
L'esempio è necessario, non so come e non ha funzionato con "sostituzione macro in class manager"
Per ottenere tutte e 3 le stampanti: "Init 1", "Init 2" e "Init EA" come risultato dell'esecuzione
Fare il manager. L'esempio del codice sorgente di cui sopra ha mostrato. Le macro servono per altre cose, però.
È un po' complicato per me, così l'ho cercato su Google.
Non sarà bello, ma potete ridurlo a qualcosa del genere:
Ecco una chiamata diretta e un esempio di implementazione senza manager.
Se la classe ImportFrom ha la registrazione del gestore e funzioni non statiche, tutto può essere chiamato automaticamente per tutti gli importati
Ecco una chiamata diretta e un esempio di implementazione senza manager.
Se la classe ImportFrom ha la registrazione del gestore e funzioni non statiche, tutto può essere chiamato automaticamente per tutti gli importati
Ho capito l'idea, grazie.
Non è trasparente al 100%, ma meglio di quanto lo sia al momento.