Potete dirmi come leggere informazioni da un'e-mail o da un sms usando MQL4/5? Per esempio, ricevo informazioni-segnale via e-mail, il mio Expert Advisor le legge e apre/chiude la posizione.
class CBar { };
class CFoo : public CBar { };
voidOnStart()
{
CBar bar;
//--- динамическое приведение типа указателя *bar к указателю *foo разрешено
CFoo *foo = dynamic_cast<CFoo *>(&bar); // критической ошибки выполнения не возникнет Print(foo); // foo=NULL //--- попытка явного приведения ссылки объекта типа Bar к объекту типа Foo запрещено
foo=(CFoo *)&bar; // возникнет критическая ошибка выполненияPrint(foo); // эта строка не будет выполнена
}
Ricordo che era possibile copiare (in stile memcpy) in strutture semplici, ma la mia struttura non è semplice.
Nuova versione della piattaforma MetaTrader 5 build 1640: creare e testare i propri strumenti finanziari
MQL5: Aggiunta la generazione automatica dell'operatore di copia implicita per oggetti di strutture e classi. Ora il compilatore genera automaticamente gli operatori di copia, il che permette di scrivere semplici record per oggetti come b=a:
class Foo
{
int value;
public:
string Description(void){returnIntegerToString(value);};
//--- конструктор по умолчанию
Foo(void){value=-1;};
//--- конструктор с параметрами
Foo(int v){value=v;};
};
//+------------------------------------------------------------------+//| структура, содержащая объекты типа Foo |//+------------------------------------------------------------------+struct MyStruct
{
string s;
Foo foo;
};
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---
MyStruct a,b;
Foo an_foo(5);
a.s="test";
a.foo=an_foo;
Print("a.s=",a.s," a.foo.Description()=",a.foo.Description());
Print("b.s=",b.s," b.foo.Description()=",b.foo.Description());
//---Print("b=a");
b=a;
//---Print("a.s=",a.s," a.foo.Description()=",a.foo.Description());
Print("b.s=",b.s," b.foo.Description()=",b.foo.Description());
/*
Результат выполнения;
a.s=test a.foo.Description()=5
b.s= b.foo.Description()=-1
b=a
a.s=test a.foo.Description()=5
b.s=test b.foo.Description()=5
*/
}
L'operatore implicito copia gli oggetti a memoria.
Se un membro è un oggetto, viene chiamato l'operatore di copia corrispondente a questo oggetto.
Se il membro è un array di oggetti, prima di chiamare l'operatore di copia appropriato per ogni elemento, l'array ricevente viene ingrandito o ridotto alla dimensione richiesta tramite ArrayResize.
Se un membro è un array di tipi semplici, la funzione ArrayCopy viene utilizzata per la copia.
Se un membro è un puntatore a un oggetto, viene copiato il puntatore stesso, non l'oggetto a cui punta.
Se necessario, potete sovrascrivere il comportamento e creare la vostra variante al posto dell'operatore di copia implicito usando l'overloading.
Grazie, ora ha senso. Non so se gioire o meno. La compatibilità con il vecchio codice è rotta. È una buona idea forzare in qualche modo l'attivazione di nuove funzionalità con cambiamenti così significativi (tramite switch di compilazione o #pragma).
Ora si scopre che auto_ptr può essere copiato nel nuovo codice (a meno che l'operatore/costruttore di copia sia silenziato), il che porterà a cancellazioni multiple di un singolo puntatore.
Viene attivato l'operatore di copia predefinito.
Se non è difficile, dove posso leggerlo?
Potete dirmi come leggere informazioni da un'e-mail o da un sms usando MQL4/5? Per esempio, ricevo informazioni-segnale via e-mail, il mio Expert Advisor le legge e apre/chiude la posizione.
Viene attivato l'operatore di copia predefinito.
Ho anche trovato questo nei documenti (notare la terza riga dal basso):
https://www.mql5.com/ru/docs/basis/types/casting
Ricordo che era possibile copiare (in stile memcpy) in strutture semplici, ma la mia struttura non è semplice.
Ricordo che era possibile copiare (stile memcpy stupido) in strutture semplici, ma non ho una struttura semplice.
MQL5 è cambiato.
MQL5 è cambiato.
Forum sul trading, sistemi di trading automatico e test di strategie di trading
La nuova versione di MetaTrader 5 build 1640: crea e testa i tuoi strumenti finanziari
MetaQuotes Software Corp., 2017.07.19 18:03
Nuova versione della piattaforma MetaTrader 5 build 1640: creare e testare i propri strumenti finanziari
L'operatore implicito copia gli oggetti a memoria.
Se necessario, potete sovrascrivere il comportamento e creare la vostra variante al posto dell'operatore di copia implicito usando l'overloading.
fxsaber
Grazie, ora ha senso. Non so se gioire o meno. La compatibilità con il vecchio codice è rotta. È una buona idea forzare in qualche modo l'attivazione di nuove funzionalità con cambiamenti così significativi (tramite switch di compilazione o #pragma).
Per esempio, il mio auto_ptr:
Ora si scopre che auto_ptr può essere copiato nel nuovo codice (a meno che l'operatore/costruttore di copia sia silenziato), il che porterà a cancellazioni multiple di un singolo puntatore.
File MQL5\Include\Controls\SpinEdit.mqh
int MaxValue(void) const { return(m_min_value); }
Come faccio a scaricare MT4?
Ho scaricato il file mt4setup.exe, l'ho installato, ma la piattaforma installa mt5. dove posso trovare mt4?
Ho scaricato il file mt4setup.exe, l'ho installato, ma la piattaforma installa mt5. dove posso trovare mt4?