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
Kurz gesagt, jedes Mal, wenn Sie einen Benutzerparameterwert ändern, sollte dieser Wert in einen variablen Wert aus der Union umgewandelt und sofort in einem gemeinsamen Byte-Array gespeichert werden, das Sie dann in uint umwandeln und in die Ressource schreiben können.
Sie müssen einen Benutzerparameter innerhalb der Vereinigungsstruktur haben. Wenn Sie den Parameter ändern, ändert sich die Struktur mit einer gleichzeitigen Änderung des int-Arrays
i[2] ist eine Benutzerressource, die von einem anderen Programm gelesen wird.
Mit einer Zeile cc.width = 200 ändern Sie:
- Der Parameter, der für die Breite verantwortlich ist,
- Die Struktur, die diesen Parameter enthält,
- Das Array der Ressource, die von dem anderen Programm gelesen wird.
Und hier gibt es keine Konvertierung und kein Kopieren, sondern nur ein Mapping.Ich kann die Wrapper-Funktionen in der Datei mit den Verbindungseigenschaften ändern und jeden verwendbaren Wert in die entsprechende Variable aus der Union umwandeln und ein Byte-Array im laufenden Betrieb erstellen. Textwerte, die ebenfalls übergeben werden müssen, müssen jedoch mitStringToChar() in ein Byte-Array umgewandelt werden.
Damit entfällt jedoch der Sinn der Verwendung einer Gewerkschaft. Wenn ich ohnehinStringToChar() verwenden muss, warum nicht alles zu einem String zusammenfügen und dann den gesamten String mitStringToChar()in Bytes übersetzen?
Sie müssen einen Benutzerparameter innerhalb der Vereinigungsstruktur haben. Wenn Sie den Parameter ändern, ändert sich die Struktur mit einer gleichzeitigen Änderung des int-Arrays
i[2] ist eine Benutzerressource, die von einem anderen Programm gelesen wird.
Mit einer Zeile cc.width = 200 ändern Sie:
- Der Parameter, der für die Breite verantwortlich ist,
- Die Struktur, die diesen Parameter enthält,
- Das Array der Ressource, die von einem Drittanbieterprogramm gelesen wird.
Und hier wird nicht konvertiert oder kopiert, sondern nur zugewiesen.Vasily, du vergisst, dass es sich um eine zweiseitige Kommunikation handelt. In meiner Engine kann ich alles mit Unions verknüpfen, aber ich kann nicht für den Anwendercode verantwortlich sein. Ich kann mir nur Wrapper ausdenken und sie in die Plugins einbauen.
Wo ist die Garantie, dass der Nutzer die Gewerkschaften auch nutzen wird? Wenn er also meine Wrapper-Funktionen aufruft, muss ich seinen Wert selbst übernehmen und auf eine meiner Variablen aus meinen Unions in seiner Plugin-Datei übertragen.
Ich kann die Wrapper-Funktionen in der Datei mit den Verbindungseigenschaften ändern und jeden verwendbaren Wert in die entsprechende Variable aus der Union umwandeln und ein Byte-Array im laufenden Betrieb erstellen. Textwerte, die ebenfalls übergeben werden müssen, müssen jedoch mitStringToChar() in ein Byte-Array umgewandelt werden.
Damit entfällt jedoch der Sinn der Verwendung einer Gewerkschaft. Wenn ich ohnehinStringToChar() verwenden muss, warum nicht alles zu einem String zusammenfügen und dann den gesamten String mitStringToChar()in Bytes übersetzen?
Denn dann haben Sie ein doppeltes Parsing. Sie werden alles in eine Zeichenkette umwandeln, das ist sehr langsam. Dann parsen Sie die Zeichenkette in ein Array, was sehr schnell geht. Dann setzt man sie wieder zu einem String zusammen - das geht sehr schnell. Dann muss man die Zeichenkette in die richtigen Typen zerlegen - das ist sehr langsam.
OK, aber was ist mit Texten?
Sie müssen mitStringToChar() in Bytes umgewandelt werden. Sie können keine Gewerkschaft verwenden, richtig?
Ja, man muss sie übersetzen, aber im Gegensatz zum Parsing geht das schnell.
Zum Beispiel:
Hier ist die Wrapper-Funktion in der Plug-in-Datei für dieVerbindungseigenschaften:
Diese Funktion wird wie folgt aufgerufen:
Das heißt, der Benutzer setzt den Wert vonClose[2] in einer Tabellenzelle.
Daher kann ich innerhalb seiner Wrapper-Funktion in seinem Programm den Wert(Close[2]) als ein Char-Array darstellen.
Aber in derselben Zelle kann der Benutzer den Wert "Hallo! :)" senden, und was ist dann zu tun?
Oh, Peter, du hast mit der falschen Programmiersprache angefangen. Du hättest etwas lernen sollen, das nicht streng getippt ist.
Im Allgemeinen habe ich Sie so verstanden, dass Sie Ihre eigene untypisierte Sprache auf der Grundlage von MQL erfunden haben. Die strenge Typisierung wurde durch die Verwendung von Strings umgangen. Das ist ein Manöver!
Oh, Peter, du hast mit der falschen Programmiersprache angefangen. Du hättest etwas lernen sollen, das nicht streng getippt ist.
Im Allgemeinen habe ich Sie so verstanden, dass Sie Ihre eigene untypisierte Sprache auf der Grundlage von MQL erfunden haben. Die strenge Typisierung wurde durch die Verwendung von Strings umgangen. Das ist ein Manöver!
Ja,)) Ein Schachzug mit einem Springer!
Wenn Sie eine Tabelle verwenden, müssen Sie entscheiden, ob die Daten in der Tabelle rein numerisch oder textuell sein sollen. Bei Text geben Sie Zeichenketten ein. Wenn es echt ist, muss Ihre Funktion wie folgt aussehen: