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
...
Es ist schön und gut, dass Sie es ansprechen, aber es nützt niemandem, sich darüber zu beschweren, wenn er nicht bereit ist, Lösungen oder gar Vorschläge zu unterbreiten, wie man das Ziel erreichen kann.
...
Eigentlich ist es gut, dass pfx es angesprochen und sich darüber beschwert hat, und MetaQuotes sollte dieses Problem lösen, denn sie kennen MetaTrader besser als der Rest von uns (übrigens ist Renat Fatkhullin, der Autor dieses Artikels, auch CEO von MetaQuotes). Nur weil jemand das Thema anspricht, heißt das nicht, dass er/sie eine Lösung für das Problem hat.
Und ich stimme zu, dass es keinen Sinn macht, zu sagen"Es ist besser, seltene Aufrufe zu machen", wenn die .dll tatsächlich bei jedem Tick aufgerufen wird. Und es ist gut, das vom CEO von MetaQuotes zu hören, Ehrlichkeit ist heutzutage eine gute Abwechslung.
@ pfx, es sieht so aus, als hätten sie den von Ihnen zitierten Absatz geändert ...
5. DLL-Aufrufe Wrapper und Geschwindigkeitsverluste bei Aufrufen
Wie bereits oben beschrieben, wird jeder Aufruf von DLL-Funktionen in einen speziellen Wrapper verpackt, um die Sicherheit zu gewährleisten.
Diese Bindung maskiert den Basiscode, ersetzt den Stack, unterstützt stdcall / cdecl Vereinbarungen und überwacht Ausnahmen innerhalb der aufgerufenen Funktionen.
Diese Arbeit führt unweigerlich zu einer Verzögerung der aufrufenden Funktion.
Daher ist es nicht empfehlenswert, sehr häufige DLL-Funktionsaufrufe (Hunderte oder Tausende von Malen pro Sekunde) für kleine Operationen durchzuführen.
Es ist besser, seltene Aufrufe zu machen.
...zu diesem ...
5. DLL-Aufrufe Wrapper und Geschwindigkeitsverluste bei Aufrufen
Wie bereits oben beschrieben, wird jeder Aufruf von DLL-Funktionen in einen speziellen Wrapper verpackt, um die Sicherheit zu gewährleisten. Diese Bindung maskiert den Basiscode, ersetzt den Stack, unterstützt stdcall / cdecl Vereinbarungen und überwacht Exceptions innerhalb der aufgerufenen Funktionen.
Dieser Arbeitsaufwand führt nicht zu einer signifikanten Verzögerung des Funktionsaufrufs.
Ich hoffe, dass sie dieses Problem der Geschwindigkeit von .dll-Aufrufen wirklich lösen und nicht nur einige Absätze des Artikels ändern, um Fragen zu vermeiden.
Apropos Fragen, ich hoffe, dass Renat Fatkhullin die Frage von pfx " Ich meine ernsthaft, was ist das für eine Aussage?" beantworten möchte, denn Renat schrieb in der letzten Zeile des Artikels: "Danke für Ihr Interesse! Ich bin bereit, alle Fragen zu beantworten", oder zumindest die Änderung des Absatzes.
Wir sind auch an Ihrer Antwort interessiert :).
Ich werde mehr darüber schreiben, wenn ich Zeit habe.
Ich weiß nicht, wann Renat diesen Artikel geschrieben hat, aber Microsoft bietet Visual Studio 2005 nicht mehr an. Sie bieten Visual Studio 2010 und 2011 Beta an und es sieht so aus, als ob sie 2008 wegschmeißen wollen.
Klicken Sie hier für Microsoft Visual Studio 2010 , und klicken Sie hier für die 2008. Der Installer ist Web-Installer, die ärgerlich ist, wenn Sie langsame Internetverbindung haben,. Sie bieten Offline-Installer als ISO-Image, aber das enthält auch Visual Studio C# und Visual Basic. Nach der Installation benötigen beide Studios einige Updates, die auch in MB-Größe groß sind.
Für diejenigen, die Visual Studio nicht installieren möchten, gibt es andere Alternativen, die Sie sich unter https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments ansehen können . Meine Favoriten sind NetBeans und Code::Block. NetBeans wird von Oracle unterstützt und ist die Basis für deren Oracle Solaris Studio. NetBeans wird jedoch nicht mit einem Compiler ausgeliefert, so dass man sich mit dem Cygwin oder MinGW Compiler behelfen muss, was für einen Neuling vielleicht lästig ist. Die letzte stabile Version des berühmten DevC++ war vor 7 Jahren, jetzt ist die Website voll von toten Links, es sieht so aus, als ob sich niemand mehr darum kümmert, also würde ich es nicht empfehlen.
Es ist besser, Visual Studio zu verwenden, weil es viele Optionen gibt, mit denen man spielen kann - wenn man weiß, wie.
Apropos Fragen, ich hoffe, Renat Fatkhullin, möchte pfx Frage zu beantworten " Ich meine ernsthaft, welche Art von Aussage ist das ", denn Renat schrieb in der letzten Zeile des Artikels, "Vielen Dank für Ihr Interesse! Ich bin bereit, alle Fragen zu beantworten", oder zumindest die Änderung des Absatzes.
Sehr gutes Tutorial!
Muss ich Dateien Referenz erstellen?
Ich muss Fann2MQl.dll (dokumentiert in http://fann2mql.wordpress.com) ändern, weil es in MT5 nicht funktioniert. Der Grund ist, dass in MT5 können Sie nicht öffnen Sie Dateien, wo Sie wollen. Sie müssen an 2 Standardorten geöffnet werden (für den Vorwärtsmodus und den Testmodus).
Die Frage ist also, welche Funktion man anstelle von fopen aufrufen und welche Header-Datei man einbinden sollte? Denn es scheint, dass die Dateien von MT5 aus geöffnet werden müssen. Jeder Versuch, eine Datei unter Umgehung von terminal.exe zu öffnen (wie es bei der Verwendung von fopen aus einer DLL geschieht), wird automatisch entweder an das Installationsverzeichnis oder an den Desktop weitergeleitet, je nachdem, wie terminal.exe gestartet wird (durch Klicken auf das Symbol oder über die Befehlszeile mit dem Parameter /portable).
Diese Weiterleitung ist außerdem bizarr, weil der Name der Datei nur im ersten Buchstaben des Pfades zu ihr steht.
Weiß jemand, wie man eine 64-Bit-DLL erstellt oder MQL5 erlaubt, eine 32-Bit-DLL zu laden? MQ5 lädt mein Testskript nicht, weil meine DLL "nicht 64-Bit" ist. Danke!
Dies kann behoben werden, Anweisungen hier: Projektmappen-Explorer -> Rechtsklick auf die Projektmappe -> Konfigurationsmanager -> Dropdown-Menü der aktiven Projektmappenplattform -> x64 auswählen -> Schließen -> Projektmappe neu erstellen
Hoffentlich hilft das.
Viel Glück!
Hallo,
Dies funktioniert nicht mit DLL von Microsoft Visual Studio 2013 Express Edition produziert, siehe beigefügt.
Es scheint nicht die Bibliothek MSVCR120D_APP.DLL und ein Problem mit KERNEL_32 als gut zu finden.
Hat jemand ein ähnliches Problem? Wie kann ich das Problem bitte umgehen?
Vielen Dank für Ihre Hilfe.
Unterstützt mql5 den Import von DLLs, die Callback-Funktionen enthalten?
zum Beispiel:
Es gibt eine DLL namens tclient.dll, die folgende Funktion enthält:
typedef TCLIENT_API void(*call_back)(Tick* p);
TCLIENT_API int sub_tick(CTX ctx, const char* insId, call_back f);
Wie sollte ich dann sub_tick in mql5 deklarieren und aufrufen?
#import "tclient.dll"
//Wie deklariere ich die Funktion "sub_tick"?
#import
void ontick(Tick &ticks[])
{}
int OnInit()
{
//Wie ruft man die Funktion "sub_tick" auf?
}