Fehler, Irrtümer, Fragen - Seite 1870

 
Slava:
Und das sollte nicht möglich sein.
Aber früher war das möglich!
 
Versucht, es herauszufinden
template <typename T>
class CLASS_COPY
{
public:
  T Data;

  CLASS_COPY( const T &Value )
  {
    Data = Value;
  }
};

template <typename T1, typename T2>
void Copy( T1 &ObjectDst, const T2 &ObjectSrc )
{
   const CLASS_COPY<T2> Object(ObjectSrc);
   const CLASS_COPY<T1>* ObjectCopy = dynamic_cast<const CLASS_COPY<T1>*>(&Object);
   
   ObjectDst = ObjectCopy.Data; // invalid pointer access
}

Es lässt sich ohne Probleme kompilieren, stürzt aber bei der Ausführung mit einem Fehler ab. Wie schreibt man nun die Copy-Funktion?

 

DLLs, die früher funktioniert haben, funktionieren nicht mehr. DLLs sind 64 Bit. Dieselben dlls x32 auf MT4 - funktionieren.

Windows 10 Home (x64 basierter PC), 1703, MT5 bild 1589
 
fxsaber:
Ich habe versucht, mich aus der Sache herauszuwinden.

Es lässt sich ohne Probleme kompilieren, stürzt aber bei der Ausführung mit einem Fehler ab. Wie schreibt man nun eine Copy-Funktion?

Wenn dll nicht kritisch ist, dann memcpy. Oder Sie können auf die Gewerkschaft warten.

Nun, eigentlich macht es Spaß. Die Entwickler selbst bezeichneten gegossene Strukturen als Standardalternative zu Gewerkschaften, und jetzt dürfen sie sie zwar nicht gießen, aber auch keine Gewerkschaften.

 
Von welcher Bauart bis zu welcher EX5 werden auf dem Markt akzeptiert?
 
Комбинатор:

Im Allgemeinen macht es natürlich Spaß. Casting-Strukturen wurden von den Entwicklern selbst als Standard-Alternative zu Union bezeichnet, jetzt kann man nicht casten und Assoziationen sind es auch nicht, richtig?

Mit der Einführung der Gewerkschaft wird es also unmöglich sein, Stimmen zu vergeben. Es werden nur einfache Fälle möglich sein.
 
fxsaber:

Wie schreibt man nun eine Copy-Funktion?

Als komplette Perversion zur Verwendung von Dateien, aber nativ
FileReadStruct - Файловые операции - Справочник MQL4
FileReadStruct - Файловые операции - Справочник MQL4
  • docs.mql4.com
FileReadStruct - Файловые операции - Справочник MQL4
 
Комбинатор:
Wie pervers ist es, Dateien zu verwenden, aber von Haus aus
Ja, das ist BEIDES.
 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

fxsaber, 2017.04.10 16:23

Schaffung unnötiger Überladungen, die zu Kompilierungsfehlern führen
template <typename T>
T Func()
{
  T Res;
  
  return(Res);
}

template <typename T>
void Func( T& Value )
{
  T Res = (MqlTick)Value;
}

void OnStart()
{
  Func<string>(); // без этой строки компилируется
  
  MqlTick Tick;
  
  Func(Tick);
}

Der Compiler versucht, eine

void Func( string& );
Warum lässt sich dieser Code nicht in 1589 kompilieren? Hier gibt es kein Casting.
 
Комбинатор:

Wenn die DLL nicht kritisch ist, dann memcpy. Oder auf die Gewerkschaft warten

Im Allgemeinen ist es natürlich lustig. Casting-Strukturen wurden von den Entwicklern als Standard-Alternative zur Gewerkschaft genannt, jetzt ist es unmöglich zu casten und noch keine Gewerkschaften, richtig?

einfach so.