Diskussion über "Wie man eine DLL für MQL5 schreibt und Daten in 10 Minuten austauscht". - Seite 9
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
Sie sollten Ihr technisches Niveau verbessern.
Für 64-Bit-Programme benötigen Sie 64-Bit-Bibliotheken, und es gibt keine Möglichkeit, 32-Bit-Bibliotheken vernünftig zu verbinden. Um die 32-Bit-Version zu installieren, muss das Installationsprogramm mit dem Schalter /32 ausgeführt werden
Ich werde den Artikel neu schreiben und coole Funktionen hinzufügen, die in MetaEditor und den Plattformen MT4 und MT5 längst implementiert sind. Viele Entwickler sind sich der neuen Funktionen nicht bewusst.
Und ich sehe, dass Microsoft mit der Komprimierung von C++ begonnen hat. Im neuesten Compiler wurde sogar die Möglichkeit, mit Formularen in C++ zu arbeiten, entfernt. Und als ich fragte, warum? Die Antwort lautet: Warum probieren Sie nicht das neue und verbesserte C++ aus? Wenn Sie also in die Zukunft blicken, sollten Sie auch dies berücksichtigen.
Nun, Microsoft ist ein notorischer Technologiekiller und hat sich in letzter Zeit ein Grab nach dem anderen geschaufelt.
Warum sich einmischen - lass es in sein eigenes Loch fallen. Es ist also bildlich gesprochen, keine Zeit auf technische Details zu verschwenden. Wer will schon Details - es gibt Tausende davon im Internet. Für "besseres C#" fehlen mir die Worte.
Sie sollten Ihr technisches Niveau verbessern.
Für 64-Bit-Programme benötigen Sie 64-Bit-Bibliotheken, und es gibt keine Möglichkeit, 32-Bit-Bibliotheken auf vernünftige Weise zu verbinden. Um die 32-Bit-Version zu installieren, müssen Sie das Installationsprogramm mit dem Schalter /32 ausführen.
Ich werde den Artikel neu schreiben und coole Funktionen hinzufügen, die schon lange in MetaEditor und den Plattformen MT4 und MT5 implementiert sind. Viele Entwickler sind sich der neuen Funktionen nicht bewusst.
Es war ganz einfach!
Installiert die kostenlose Visual Studio Community 2015 (genau Community, da es x64-Unterstützung hat, im Gegensatz zu Express) Die kostenpflichtigen Versionen haben auch x64 natürlich, aber ich war auf der Suche nach den kostenlosen Optionen. Web Installer gab eine Fehlermeldung aus, also habe ich vom ISO-Image installiert. Wählen Sie bei der Installation die Option "Benutzerdefinierte Installation" und aktivieren Sie C++ (standardmäßig ist es nicht installiert).
Dann habe ich alles wie im Artikel beschrieben gemacht, d.h. ein Win32-Projekt erstellt. Ich habe eine Baugruppe erstellt, die das x64-Terminal (wie erwartet) nicht akzeptiert.
Dann habe ich in der Registerkarte "Build" -> "Configuration Manager" die Plattform auf x64 geändert (Sie können auch die "Active Solution Platform" auf x64 ändern)
Wieder gebaut. Es stellte sich heraus, dass sich die neue DLL im Ordner \x64\Debug befindet (die endgültige Version wird im Ordner x64\Release\ sein), den das x64-Terminal ohne Probleme verarbeitete und die folgende Ausgabe lieferte:
19:29:01.883 dll_test (EURUSD.e,H1) Zeit 16 msec, int: -752584127 double: 17247836076609.0
19:29:01.883 dll_test (EURUSD.e,H1) Array: 0 1 2 3 4 5 6 7 8 9
19:29:01.883 dll_test (EURUSD.e,H1) Replace: Eine schnelle braune Katze springt über den faulen Hund
19:29:01.886 dll_test (EURUSD.e,H1) Zugriffsverletzung bei 0x000007FEFB0F176F write to 0x0000000000000000 in '...\MQL5\Libraries\ConsoleApplication1.dll'
und weitere Beschreibung des abgefangenen Fehlers
D.h., alles funktioniert!!!
Anmerkung:
Als ich die DLL auf einen anderen Computer übertrug, funktionierte sie nicht, weil sie Komponenten aus VS selbst verwendete. Das Problem wird in Projekt -> Eigenschaften -> MFC verwenden gelöst, indem man "MFC in statischer Bibliothek verwenden" einstellt. Danach erstellen Sie die DLL neu und kompilieren sie neu
Gefunden im Forum:
Es ist möglich, EAs mit DLLs nicht nur auf dem lokalen Computer, sondern auch in einem lokalen Netzwerk zu optimieren. Fügen Sie dazu auf Netzwerkcomputern den Schlüssel /dlls in die Registrierung für Testagenten ein. Registry-Editor aufrufen: regedit
Renat Fatkhullin:
Bei bereits installierten Agenten können die Startbefehle nur über die Registrierung in den Zweigen HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MetaTester-XXXX geändert werden
Klicken Sie einfach auf jeden ImagePath-Parameter und fügen Sie /dlls am Ende der Zeile hinzu
Ich bin gerade dabei, ZeroMQ über eine DLL an MT4 zu binden.
Irgendwie ist das sehr schlecht. Das Terminal stürzt beim Starten des Indikators oder beim Entladen immer wieder ab. Und im Debug-Modus wird es nicht angezeigt, also weiß ich nicht, was da los ist.
Guten Tag.
Wenn ich das Testbeispiel ausführe, stürzt das Skript aus irgendeinem Grund beim ersten Aufruf der importierten Funktion ab
2016.07.30 23:30:14.088 Skriptskript mql5dll_test (EURUSD,H1) entfernt
Was mache ich falsch?
Guten Tag.
Wenn ich das Testbeispiel ausführe, stürzt das Skript aus irgendeinem Grund beim ersten Aufruf der importierten Funktion ab
2016.07.30 23:30:14.088 Skriptskript mql5dll_test (EURUSD,H1) entfernt
Was mache ich falsch?
dieser Artikel ist 6 Jahre alt, da muss sich etwas geändert haben.
Wie lautet der Fehlercode?