Was ist das für ein Unsinn mit dem Registerzeichen? - Seite 7

 
Andrei, ich habe dir gesagt, du hättest keine Parallelversionen machen sollen. Jetzt haben Sie eine Funktion und ich habe eine andere... Wir hätten ein einziges Projekt beibehalten sollen.
 
Zhunko:
Andrey, ich habe dir gesagt, dass es nicht notwendig war, die parallelen Versionen zu multiplizieren. Jetzt haben Sie eine Funktion und ich habe eine andere... Sie hätten ein Projekt behalten sollen.

Das ist nicht wirklich wichtig :-). Wenn das Projekt einfach ist, können Sie 2 Projekte verwalten :-).
Um andere Funktionen hinzuzufügen - 5 Minuten Zeit.

 
jartmailru:
Weißt du, wenn dich das Video nicht inspiriert, dann bearbeite es nicht :-).
Und ich persönlich werde meine Ratgeber nicht ohne so ein Ding schreiben können ;-)...
Was soll ich tun, wenn ich manuell nach etwas im Protokoll suchen muss?

So funktioniert das nicht. Das Skript (mein Expert Advisor) öffnet das zweite Fenster.


Haben Sie eine Idee, wie man das beheben kann? Ich habe keine.

Dateien:
 

MetaDriver:

Haben Sie eine Idee, wie man es behandeln kann? Ich habe noch keins.

Ich habe eine. Es ist ein bisschen unordentlich, aber es wird funktionieren.

Der Arbeitsplan sieht folgendermaßen aus:

1. tester expert schreibt eine Protokolldatei, kein Fenster.

2. Nach dem Test nehmen wir die Datei MyTesterLog.log und kopieren sie manuell in den Ordner ..\MetaTrader 5\MQL5\Files

3. showLog-expert in Inite übernimmt alles aus der Datei ins Debug-Fenster...

4. ...und positioniert die Klicks im selben Fenster wie vorgesehen.

Es ist noch langweilig zu schreiben, aber es sollte zu 100% funktionieren.

 
Ich war selbst schockiert - ich hatte das gleiche 1:1 !!!
.
Also...
Der Punkt ist, dass alle Mql-Dateien ausdrücklich auf denselben dll-Index verweisen müssen.
Andernfalls werden sie von verschiedenen Stellen geladen, und Sie erhalten zwei Fenster.
 
jartmailru:
Ich war selbst schockiert - ich hatte das gleiche 1:1 !!!
.
Na ja...
Der Punkt ist, dass alle Mql-Dateien explizit auf eine dll-ina verweisen müssen.
Andernfalls werden sie von verschiedenen Stellen geladen, und Sie erhalten zwei Fenster.

Ich bin nicht daran interessiert, wessen Schuld es ist. // Ich weiß es selbst. ))

Sagen Sie mir, was ich tun soll.

;)

 
MetaDriver:

Ich bin nicht daran interessiert, WER die Schuld trägt. // Ich weiß es selbst. ))
Sagen Sie mir, was ich tun soll.
;)

Wie gesagt:
alle Mql-Dateien müssen auf die gleiche dll-in verweisen.
.
Prüfen Sie, ob die Importe auf dieselbe DLL verweisen.
 
jartmailru:
Sagte ich doch:
alle Mql-Dateien müssen explizit auf einen dll-Index verweisen.
.
Vergewissern Sie sich, dass die Importe auf dieselbe dll-in verweisen.

Daran gibt es keinen Zweifel.

Ich glaube (eigentlich bin ich mir sicher), dass MT5 für jeden Prozess eine neue Instanz erstellt. Ich glaube, ich bin vor einiger Zeit sogar in der Dokumentation darauf gestoßen. Ich frage mich sogar, warum alle verschiedenen Instanzen von EAs bei der Optimierung alles in ein Fenster schreiben. Vielleicht existieren sie alle in einem einzigen Thread, so dass es möglich ist. Wie auch immer, ich kann dieses Problem nicht nachvollziehen. Wenn Sie nicht dafür sorgen können, dass verschiedene Instanzen der DLL alles in ein Fenster schreiben, verzichte ich darauf.

Sie können dies wahrscheinlich erreichen, indem Sie das zweite dll-in (das vom ersten aufgerufen wird) als Host für das Fenster verwenden. In jedem Fall sollte window ein Singleton sein.

// Korrigiere die Tasten gleichzeitig, Bomb! ;)

 
MetaDriver:

Daran gibt es keinen Zweifel.

Ich glaube (eigentlich bin ich mir sicher), dass MT5 für jeden Prozess eine neue Instanz erstellt. Ich glaube, ich bin vor einiger Zeit sogar in der Dokumentation darauf gestoßen. Ich frage mich sogar, warum alle verschiedenen Instanzen von EAs bei der Optimierung alles in ein Fenster schreiben. Vielleicht existieren sie alle in einem einzigen Thread, so dass es möglich ist. Wie auch immer, ich kann dieses Problem nicht nachvollziehen. Wenn Sie die verschiedenen Instanzen der DLL nicht dazu zwingen können, alles in ein Fenster zu schreiben, verzichte ich darauf.

Vielleicht ist dies möglich, wenn Sie eine zweite DLL-ino (die von der ersten aufgerufen wird) als Hostess des Fensters verwenden. In jedem Fall muss das Fenster ein Singleton sein.

// Korrigiere die Tasten gleichzeitig, Bomb! ;)

Hmmm... Wenn es für jede Instanz einen eigenen Prozess gibt, ist das schade...
und es gibt kein einfaches Heilmittel.
.
> Ich frage mich sogar, warum DIFFERENTEN Instanzen von EAs bei der Optimierung alles in ein Fenster schreiben.
Wenn sie aus einem Prozess stammen, schreiben sie alles in ein Fenster.
.
> Wenn Sie nicht dafür sorgen können, dass verschiedene Instanzen einer DLL alles in ein Fenster schreiben, verzichte ich.
Das ist relativ einfach zu machen, aber ich müsste das Ganze neu machen :-).
Wie gut, dass ich den MT5 noch nicht benutze :-D.
.
Wenn die Prozesse unterschiedlich sind, wird das zweite dllin das Problem nicht lösen.
Sie benötigen einen separaten Prozess mit einem Fenster, um Nachrichten zu empfangen
und Befehle von mehreren anderen Prozessen.
.
Am einfachsten ist es, ein Fenster zu finden und ihm eine Art WM_COPYDATA zu senden.

 

Es ist alles schlecht... :)

Alle Experten auf verschiedenen normalen Charts + alle Skripte (dort) bereit, im gleichen Fenster zu schreiben.

Einfach in den Tester laufen - öffnet einen anderen und schreibt darin. So ein Durcheinander.

Wahrscheinlich, weil das Prüfprogramm ein separates Programm ist (MetaTester.exe), öffnet es eine zusätzliche Kopie. Man darf sich ihm nicht in den Weg stellen.

Razumo: Ich denke, wir brauchen die Entkopplung/Bindung auf DLL-Ebene.

--

Trailer ist eine korrigierte Version von EA + intermediate lib auf µl (versucht, eine Instanz der dll zu verwenden)

Dateien: