Websocket wie? - Seite 27

 
Aleksei Beliakov:

1. Sie haben nicht so viele Jobs. Ich verstehe. Keine Sorge.

2. Die logische Schlussfolgerung wäre, die Ergebnisse (aller Arbeiten und auch von mql4) hier für alle zu posten, das würde das allgemeine Niveau des Forums anheben, und vielleicht gäbe es dann mehr Leute mit Arbeit und weniger Leute, die Fremden sagen, was sie tun sollen.

Das Problem muss noch gelöst werden, aber die eigentliche Frage ist, wie man es macht.

 
Aleksei Beliakov:

1. Sie haben nicht so viele Jobs. Ich verstehe. Keine Sorge.

2. Die logische Schlussfolgerung wäre, die Ergebnisse (auch aller mql4-Arbeiten) hier für alle zu posten, das würde das Niveau der Forumsnutzer insgesamt anheben, und vielleicht gäbe es dann mehr Leute mit Arbeit und weniger Leute, die Fremden sagen, was sie tun sollen.

Ich unterstütze Sie, folgte das Thema im gleichen Atemzug. für mich als Analphabeten Selbst-Student war es interessant, Schritt für Schritt jede Aktion zu sehen, vor allem mit Erklärungen. und hier am Ende nach den Unstimmigkeiten begann ein Durcheinander, am Ende wurde alles korrigiert und getan, aber ohne die detaillierten Schritte, die und wie. so stellt sich heraus, dass die Selbst-Student begann zu wiederholen / zu verstehen und zum Zeitpunkt der Unstimmigkeiten blieb in der frei schwebenden ohne zu verstehen, was als nächstes zu tun. Ich stimme zu, dass man das halbe Internet durchforsten kann, um es selbst zu vervollständigen, aber da es so ein großartiger Anfang war, warum sollte man es nicht auf die gleiche Weise beenden. Es ist nicht der Code selbst, der benötigt wird, sondern nur eine kompetente Erklärung, wie man ihn zu einem logischen Ende bringt.

 

Hallo

Ist dieses Projekt frei verfügbar oder ist es ein kostenpflichtiges Projekt? Gibt es irgendwo eine Anleitung, wie man es selbst implementieren kann?

Ich bin daran interessiert, Angebote in Echtzeit von einem anderen Anbieter über einen Websocket zu importieren.


Wenn wir alles per Bild machen, verstehe ich den Prozess des Imports und der Ausgabe von Angeboten nicht. Ich glaube nicht, dass diese Frage bereits behandelt wurde.

 

Ich wollte nur dieses Thema starten, weil ich eine Frage zu C# gestellt habe und nicht fündig geworden bin. Vielleicht kommt ja jemand vorbei und hilft mir ;)


Die Quintessenz: Ich wickelte MQL5 Bibliothek in C# nativ, um es von MQL4 aufrufen, alles funktioniert,

Aber es funktioniert nur einmal - vor EA Entladen, wird der zweite Lauf in MT4 einen Fehler verursachen

Unhandled exception 0xE0434352

Suche im Forum nur hierhttps://www.mql5.com/ru/forum/35807

die Situation ist verwirrend, dass das Schließen des Charts und das Öffnen des Charts das Problem nicht lösen, nur das Neuladen von MT4 hilft

Ich schließe alle Threads in der .dll, aber beim Entladen im Task-Manager wird der Prozess (der erscheint, wenn die dll aufgerufen wird) geschlossen


Ich habe keine Ahnung, wo ich danach suchen soll, in MQL5 funktioniert es wie am Schnürchen.

 
Igor Makanu:

Ich wollte nur dieses Thema starten, weil ich eine Frage zu C# gestellt habe und nicht fündig geworden bin. Vielleicht kommt ja jemand vorbei und hilft mir ;)


Die Quintessenz: Ich wickelte MQL5 Bibliothek in C# nativ, um es von MQL4 aufrufen, alles funktioniert,

Aber es funktioniert nur einmal - vor EA Entladen, wird der zweite Lauf in MT4 einen Fehler verursachen

Suche im Forum nur hierhttps://www.mql5.com/ru/forum/35807

die Situation ist verwirrend, dass das Schließen des Charts und das Öffnen des Charts das Problem nicht lösen, nur das Neuladen von MT4 hilft

Ich schließe alle Threads in der .dll, aber beim Entladen im Task-Manager wird der Prozess (der erscheint, wenn die dll aufgerufen wird) geschlossen


Ich habe keine Ahnung, wo ich danach suchen soll, in MQL5 funktioniert es wie am Schnürchen.


Es scheint eine Ausnahme ausgelöst zu werden, fügen Sie try-catch in den Code ein
 
Fedor Arkhipov:


Es scheint eine Ausnahme zu geben, fügen Sie try-catch in den Code ein

Das Problem ist in MQL4, mein Code ist 99% der gleiche

vielleicht kann die Robert-Giesecke-Vorlage, die ich für native Aufrufe verwende, nicht damit umgehen, oder das Terminal lässt einige Ressourcen offen

Ich weiß nicht, wo ich anfangen soll zu suchen (

 
Igor Makanu:

Das Problem ist in MQL4, mein Code ist 99% der gleiche

Vielleicht kann die Robert-Giesecke-Vorlage, die ich für native Aufrufe verwende, nicht damit umgehen, oder das Terminal lässt einige Ressourcen offen.

Ich weiß nicht, wo ich anfangen soll, danach zu suchen ((

nicht alle DLLs sind reentrant. Der Begriff ist nicht ganz richtig, aber kurz und bündig - nach dem Laden-Entladen führt das nächste Laden zu undefiniertem Verhalten.

Ändern Sie etwas im Prozessspeicher oder in einem bestimmten Thread. DLLs sind im Allgemeinen anpassungsfähig - laden und loslegen, ohne hin und her zu blättern :-)

aber natürlich gibt es Umgehungsmöglichkeiten, Sie können das DLL-Offloading verhindern, wenn es einmal benötigt wird, dann lassen Sie es im Speicher bleiben

mit einem Link zur Quelle, einem der Rezepte:

/* ----------------------------------------------------- */
/* предотвратить выгрузку DLL из памяти !! (без этого глючит)
/* copy-paste из https://blogs.msmvps.com/vandooren/2006/10/09/preventing-a-dll-from-being-unloaded-by-the-app-that-uses-it/
/* ----------------------------------------------------- */
HMODULE g_Self;
int LockLibraryIntoProcessMem(

HMODULE DllHandle,

HMODULE *LocalDllHandle)

{

  if(NULL == LocalDllHandle)

    return ERROR_INVALID_PARAMETER;

 

  *LocalDllHandle = NULL;

  TCHAR moduleName[1024];

  if(0 == GetModuleFileName(

DllHandle,

moduleName,

sizeof(moduleName)/ sizeof(TCHAR)))

    return GetLastError();

  *LocalDllHandle = LoadLibrary(moduleName);

  if(NULL == *LocalDllHandle)

    return GetLastError();

  return NO_ERROR;

}
BOOL APIENTRY DllMain( HMODULE hModule,
                      DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                               )
{

  switch(ul_reason_for_call)

  {

  case DLL_PROCESS_ATTACH:
        //      WriteLog("Attach");
    LockLibraryIntoProcessMem(hModule, &g_Self);

    break;

  case DLL_PROCESS_DETACH:
        //      WriteLog("Detach");

    break;

  }

    return TRUE;

}

etwas über die Formatierung "getötet" :-(

 
Maxim Kuznetsov:

hochladen und los geht's, kein hin- und herscrollen :-)

Ich habe keine besondere Wahl, ich werde aufhören, nach Perfektion zu suchen, und ich habe einen starken Wunsch, alles in 5 und in 4 ohne Bugs zu haben, und nicht, den Code von Grund auf neu zu schreiben ))))

danke für die Informationen, sie sind sehr informativ!

 

Es scheint schon lange her zu sein... Es scheint...

Das Entladen von dynamisch ladenden Bibliotheksprogrammen erfordert besondere Fähigkeiten. In MQL5 und MQl4 haben nur Metaquotes diese Fähigkeit, da nur sie Zugang zu den Geheimnissen der Auftragsverwaltungssprache in ihrer Umgebung haben. Und in JCL hätte ich es auf meinen Knien geschafft.