Fehler, Irrtümer, Fragen - Seite 2574
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Banal, wenn Sie die Ergebnisse dieser Funktionen in ontick drucken, dann ist es für die Zeit 1970.01.01 für den Preis 0
Vielleicht haben Sie einen Fehler in Ihrem Computer? Ich habe diesen Code in Build 1220.
druckt
Wenn Sie die Ergebnisse dieser Funktionen in ontick ausdrucken, gilt dies für den Zeitpunkt 1970.01.01 zum Preis 0.
Wie lautetder Fehlercode?
Was sind die Testparameter?
Sind die Daten nach Wochen und Monaten geladen? Wie viele sind es insgesamt?
Wie lautetder Fehlercode?
Was sind die Testparameter?
Werden die Daten nach Wochen und Monaten hochgeladen? Wie viele sind es insgesamt?
Ich habe es noch einmal überprüft, und jetzt funktioniert alles.
Ich habe die Geschichte heruntergeladen.
Ich danke Ihnen.
Beobachtung aus dem Gedächtnis.
Ich habe CopyRates etwa tausendmal in meinem Code ausgeführt.
Dann wird das Array der Anführungszeichen irgendwie verarbeitet, und am Ende rufe ich auf:
ArrayRemove(ArrayQuotes,0,ArraySize);
ArrayFree(ArrayQuotes);
ArrayResize(ArrayQuotes,0);
ArrayFree(ArrayQuotes);
ZeroMemory(ArrayQuotes);
(gerade anders experimentiert)
Ergebnis - Speicher wächst immer noch geometrisch und wird verstopft, zusammen mit der Last auf den Prozessoren - i7-Prozessor wird um 80% insgesamt auf allen logischen Kernen verstopft, Speicher ist mehr als Giga.
Bisher ist es mir gelungen, den Ressourcenverbrauch mit einem Drittanbieterprogramm einzuschränken - CPU nicht mehr als 15% und Speicher nicht mehr als Giga.
Frage: Ist dies ein Fehler oder eine Funktion der Plattform?
Übrigens, seltsames Verhalten des Meta-Editors, sollte korrigiert werden:
fn_call();/////////////////////
Ein Doppelklick auf die Schrägstriche hebt die Schrägstriche mit dem vorherigen Zeichen hervor (wenn es sich nicht um eine Zahl oder einen Buchstaben handelt).
Warum ungünstig? Ich habe den Code vorübergehend bearbeitet und die Leerzeichen auf diese Weise hervorgehoben, dann muss ich schnell einzelne Schrägstriche markieren und löschen.
Immer noch zurück zu der Frage der Übergabe von Strings aus dll, wchar_t* als Zeiger.
Von Renat'sArtikel über die Arbeit mit Strings in dll, ist es klar, dass mql Typ String einen Zeiger auf String wchar_t* von externen dll nimmt.
Mit anderen Worten, wir sendenwchar_t* an die DLL und empfangen es als String & in mql.
Aber die C-Funktion
funktioniert nicht korrekt, d.h. ein Zeiger auf die Zeichenkettewchar_t* dest wird in mql empfangen, schlägt aber fehl und geht ein und aus.
Manchmal stürzt das Terminal ab und das Programm wird beendet.
Mit der Funktion
Das Terminal stürzt nicht ab, aber die Strings kommen auch nur sporadisch an.
Bitte korrigieren Sie dies im nächsten Build.
ZS: Ich habe vergessen zu erwähnen, dass derwchar_t* Zeiger von einem anderen Thread übergeben wird.
D.h. die Funktion wcscpy_s oder wcscpy wird in einem separaten Thread aufgerufen.
Immer noch zurück zu der Frage der Übergabe von Zeichenketten aus der DLL, wichar_t* als Zeiger.
Von Renat'sArtikel über die Arbeit mit Strings in dll, ist es klar, dass mql Typ String nimmt einen Zeiger auf String wichar_t* von externen dll.
Mit anderen Worten, wir senden wichar_t* an die DLL und empfangen es als String & in mql.
Aber die C-Funktion
funktioniert nicht korrekt, d.h. ein Zeiger auf die Zeichenkettewichar_t* dest wird in mql empfangen, schlägt aber fehl und geht ein und aus.
Manchmal stürzt das Terminal ab und das Programm wird beendet.
Mit der Funktion
Das Terminal stürzt nicht ab, aber die Strings kommen auch nur sporadisch an.
Bitte korrigieren Sie dies im nächsten Build.
ZS: Ich habe vergessen zu erwähnen, dass der wichar_t* Zeiger von einem anderen Thread übergeben wird.
D.h. die Funktion wcscpy_s oder wcscpy wird in einem separaten Thread aufgerufen.
Und wer wird den Speicher für string dest zuweisen?
Der Speicher wird im mql-Code wie folgt zugewiesen
heraus und als Zeiger auf den zugewiesenen Speicher übergeben, da string in mql wchar_t* in dll ist
Func("Task", out);