Diskussion über "Wie man eine DLL für MQL5 schreibt und Daten in 10 Minuten austauscht". - Seite 11

 
Seric29:

Nun, ja, ich habe es auch ohne gesehen, es funktioniert bei mir nicht, nun, zeigen Sie mir, was ich kopieren muss, zeigen Sie mir die richtige Richtung?

https://github.com/Roffild/RoffildLibrary/blob/master/Libraries/Roffild/PythonDLL/public.h

https://github.com/Roffild/RoffildLibrary/blob/c38ba6babd0935704fd30abeb58b953e33ede3e9/Include/Roffild/PythonDLL.mqh#L16

Ich habe diesen Ansatz gewählt, um den Code nicht in verschiedenen Dateien zu duplizieren.

 
Roffild:

Das ist nichts, was ich tun kann.

 
Welche Bibliotheken muss ich in C++ einbinden, um Daten und Zeichenketten an die DLL zu übergeben, und wie arbeite ich mit Farben in C++?
 
Seric29:
Welche Bibliotheken muss ich in C++ einbinden, um Daten und Strings an die DLL zu übergeben, und wie arbeite ich mit Farben in C++?

Es werden keine benötigt. __time64_t (datetime) und wchar_t (string) sind Standardtypen. Das Analogon für Farbe ist COLORREF.

 
Ihor Herasko:

Es werden keine benötigt. __time64_t (datetime) und wchar_t (string) sind Standardtypen. Das Analogon für Farbe ist COLORREF.

Könnt ihr mir nicht anhand eurer Empfehlungen zeigen, wie diese Variable deklariert wird und wie ihre Werte aussehen? Für Daten muss es__time32_t sein, weil ich 32 verwende. Zeigen Sie mir, wie man__time32_t deklariert, wie man eine Variable deklariert, die das Datum speichert und wie sie aussieht, und dasselbe für Farben. Bei Zeichenketten gehe ich folgendermaßen vor

#include<string>

unter Verwendung von std::string;

string l="123456 ";

Für die Daten riet #include<chrono>, aber es funktioniert nicht, aber über die Farben wurden Ratschläge noch komplizierter sogar darüber schreiben wird nicht gegeben.

 
Oh, ja?! ... Es ist viel härter als ein Baumstamm. Seit drei Tagen stochere ich in derselben Sache herum; ich habe alles verändert, umbenannt, neu geordnet, verdreht, so dass sogar die Wanzen in meinem Gehirnraum aufhörten zu hecheln und sich mit der Sinnlosigkeit ihres Unterfangens abfanden, alles bespuckten und zu meinen Nachbarn gingen, um sich zu verabschieden; nachdem sie zu dem eindeutigen Schluss gekommen waren, dass es etwas Cooleres gibt als ihren flüchtigen Obskurantismus: Er spielt Gusli und tanzt zur Balalaika mit Tamburinen und Pauken in B-Dur; es handelt sich eindeutig um eine Art außerirdischen Gesang... ?! Das lag daran, dass ich in denTerminaleinstellungen das Kästchen Extras/Einstellungen/Beratungen/DLL-Import zulassen nicht aktiviert hatte. Oh, Mann... . Und zu allem Überfluss komme ich nicht dahinter: Vielleicht habe ich die meiste Zeit alles richtig gemacht... Ich könnte den ganzen Prozess wiederholen, aber ich kann mich nicht daran erinnern, was ich getan habe und wie ich es getan habe... . Es kommt noch schlimmer... . Hier funktioniert alles und funktioniert in verschiedenen Studios. Das einzige, was ich nicht verstehe, ist die Verbindung zur "C"-Sprache und die Interaktion mit Strukturen und Klassen, was bedeutet, dass man sie dort nicht unterbringen kann, aber es kam mir nur in den Sinn, "CPP" statt "C" zu schreiben und zu versuchen... Ich schätze, ich muss alles irgendwo auf dem Weg schreiben. Eine gute Lektion. Viel Glück für alle. Versucht, es funktioniert nicht mit diesem "CPP", aber die Klasse Interaktion innerhalb der DLL selbst macht es alles funktionieren.
Настройки платформы - Начало работы - MetaTrader 5
Настройки платформы - Начало работы - MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
 
P.S.: Ich lösche fehlerhafte Dateien auf einmal und erinnere mich nicht einmal mehr an fast jeden Fehler, (Das ist, wenn ich eine DLL selbst machen werde), aber nicht immer, aus irgendeinem Grund?!.... Und es gibt keine Möglichkeit, ihn zu fangen. Es ist im Zusammenhang mit einigen Attributen und Windows-Kits mit winnt.h Bibliothek Informationen können natürlich auf der fliegenden gefunden werden, wenn Sie Ihren Browser auf Englisch übersetzen zu suchen, aber gestern habe ich versucht, ein wenig suchen und etwas ohne Erfolg. Ich persönlich glaube, dass irgendwo in den Einstellungen des Projekts zu betrügen, oder tun etwas zufällig, und dann Linker geht verrückt mit seinen Bewegungen. Im Allgemeinen ist dieser Fehler für mich immer noch am Rande der Unklarheit ..., aber es gibt eine Option, jetzt schnell machen mura, dass es diesen Fehler produzieren würde und schauen Sie sich Ihren Code und zu analysieren ... . Höchstwahrscheinlich werde ich das tun. Aber nicht sofort, sondern nach und nach, sonst brennt mein Gehirn völlig aus und es bleibt nicht mehr viel übrig. Viel Glück für alle. P.S.: Ich vergesse über Microsoft Docs, und es hat alles, jetzt habe ich starrte und schon eine interessante gefunden, es sagt, dass irgendwo habe ich nicht den Ausdruck #define hinzugefügt. Oh, ich habe die Docs vergessen. Scheiß auf Google... .
 
Wie implementiert man Datenname und Farbvariable in der C++ dll-Bibliothek? Wie ruft man die Print()-Funktion in der DLL auf und wie kann man sie ersetzen, da C++ sie nicht hat?
 
Ihor Herasko:

Es werden keine benötigt. __time64_t (datetime) und wchar_t (string) sind Standardtypen. Das Analogon für Farbe ist COLORREF.


Schauen wir uns also an, wie es funktioniert, ja?

 
Seric29:
Wie implementiert man Variablen vom Typ datetame und color in der c++ dll-Bibliothek? Wie ruft man die Print()-Funktion in der DLL auf und wie kann man sie ersetzen, da C++ sie nicht hat?

Print() ist eine Funktion, die nur in mql4 und mql5 verfügbar ist. Sie kann nicht direkt ersetzt werden, da das Ausgabegerät für sie eine Protokolldatei des Terminals ist. Sie kann jedoch indirekt aufgerufen werden, wenn Sie einen entsprechenden Befehl an den Expert Advisor (Indikator, Skript) senden, mit dem die DLL verbunden ist. Es hängt davon ab, wie der Datenaustausch zwischen dll und dem Expert Advisor implementiert ist.

Auch wenn es eine Aufgabe gibt, etwas irgendwo auszudrucken, nicht unbedingt im Terminalprotokoll, gibt es viele Möglichkeiten dafür: Datei, Drucker, Anzeige am Ende.