Fehler, Irrtümer, Fragen - Seite 2836

 
Alexey Viktorov:

Wie kann ich Ihnen beibringen, die Dokumentation zu lesen?


Ich habe das gesehen.

 
Ausführungsfehler:
//Test.mqh
#import "Test2.ex5"
        int StringFind( string, string, bool, int = 0 );
        int f();
#import
//Test.mq5
#include "Test.mqh"
void OnStart()
{
        Print(f());
}
//Test2.mq5
#property library
#include "Test.mqh"
int StringFind( string, string, bool, int ) export
{
        return 999;
}
int f() export
{
        string text = "";
        return StringFind( text, text, true );
}

Ergebnis: -1

Erwartetes Ergebnis: 999

Tatsächlich hatinnerhalb eines Moduls eine ähnliche eingebaute Funktion :: StringFindeine höherePriorität als eine Funktion mit genau der gleichen Signatur, was an sich schon Unsinn ist. Für eine korrekte Funktionsweise müssen wir den Kontext des Moduls angeben, um eine Funktion aufzurufen, die innerhalb desselben(!) Moduls implementiert ist

        return Test2::StringFind( text, text, true );

- was doppelt unsinnig ist

 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Fragen von Neulingen zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes" verschoben.
 

Ich möchte für mich einmal das Verhalten von Unzulänglichen mit bestimmten Rechten klären.


In einer englischsprachigen KB stellt ein russischsprachiger Autor sein Werk ein. Ich schreibe dem Autor einen Kommentar dazu auf Russisch und Englisch. Der russische Text ist gelöscht. Ist das die Norm?

Ich spreche von diesem Thema. Wiederholt mit der Entfernung seiner Beiträge konfrontiert, machte einen Screenshot des aktuellen Beitrags.


Ich möchte wissen, wo und warum meine Beiträge gelöscht werden, damit ich sie nie wieder schreibe.

Scripts: TickCompressor
Scripts: TickCompressor
  • 2020.08.26
  • www.mql5.com
Articles, Library comments: Scripts: TickCompressor
 
Welchen Sinn hat es, MQL den Status einer fortgeschrittenen Sprache vorzuenthalten?
class A {
public:
        void f( int ) {}      //(1)
};
class B : public A {
public:
        void f( int, int ) {} //(2)
};
void OnStart()
{
        B b;
        b.f( 1 ); //(*) Warning: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
}

(*) Warnung... und bald wird es offenbar einen Fehler geben. Die Funktionen (1) und (2) unterscheiden sich deutlich in der Anzahl der Parameter. In C++ ist es klar, warum, aber MQL war in dieser Hinsicht schon immer fortschrittlicher.

 
fxsaber:

Ich möchte für mich einmal das Verhalten von Unzulänglichen mit bestimmten Rechten klären.


In einer englischsprachigen KB stellt ein russischsprachiger Autor sein Werk ein. Ich schreibe dem Autor einen Kommentar dazu auf Russisch und Englisch. Der russische Text ist gelöscht. Ist das die Norm?

Ich spreche von diesem Thema. Wiederholt mit der Entfernung seiner Beiträge konfrontiert, machte einen Screenshot des aktuellen Beitrags.


Ich möchte wissen, wo und warum meine Beiträge gelöscht werden, damit ich sie nie wieder schreibe.

Ich bin auch auf eine solche Situation gestoßen, aber es handelt sich nicht um Unzulänglichkeiten, sondern um die Erfüllung ihrer Pflichten. Wir müssen die veraltete Regel ändern - "Russisches Forum = russische Sprache" => keine Pflichten => das Löschen wird eingestellt.

Autotranslatoren bewältigen derzeit die gesprochene Sprache bis zu 4 (trotzdem geht etwas verloren), und deshalb sollte eine neue Regel eingeführt werden - "schreibe in der Sprache, die du am besten kennst". Es ist besser, wenn ein englischer Muttersprachler in seiner Muttersprache schreibt und mit Hilfe verschiedener Übersetzungen (Yandex, google, deepl.com, sein eigener Kopf) verstanden wird, als wenn er eine Nachricht auf Russisch hinterlässt und uns damit die Quelle vorenthält.

Streichen Sie die Regel "nationales Forum = nationale Sprache"!

 
Fehler beim Kompilieren:
template<typename T>
class A {
public:
        void f( int ) {}      //(1)
};
class B : public A<int> {
public:
        void f( int, int ) {} //(2)
};
void OnStart()
{
        B b;
        b.A<int>::f( 1 ); //Error: 'A' - undeclared identifier
}

Die Berichtigung dieses Fehlers ist angesichts dieser Neuerung besonders wichtig. Andernfalls wird (1) nicht ausgelöst

 

Ausführen von terminal64.exe mit nur einem Schlüssel.


Process Monitor zeigt für die laufende terminal64.exe eine andere an.


 
Bitte reparieren Sie das Einfügen von Bildern aus dem Puffer mit CTRL+V.
 
Systemmeldungen über neue Kommentare in PMs funktionieren nicht