Bibliotheken: Abbildungsdateien ohne DLL

 

Abbildungsdateien ohne DLL:

Die Klassen (konvertiert von C++ zu MQL5) zum Arbeiten mit Speicherabbilddateien.

Autor: o_O

 

Alex, hatten Sie vor, ein virtuelles Dateihandle an einen anderen Thread zu übergeben?

Ich habe es nicht gefunden, wenn es so etwas gibt, zeige mir bitte, wo es ist.

ZY Aber im Allgemeinen ist das eine gute Sache.

 
Urain:

Alex, haben Sie schon einmal daran gedacht, das Handle einer virtuellen Datei an einen anderen Thread zu übergeben?

Wo liegt das Problem?
 
sergeev:
Wo liegt das Problem?

Kein Problem, ich habe den Handle gekapselt und an ein anderes Objekt übergeben, alles funktioniert.

Ich bin nur auf der Suche nach, wo Sie für eine solche Datei Zugriff Übertragung vorgesehen.

 

in der Klasse CMemMapApi sollte das Speicherhandle von dem Programm gespeichert werden, das es verwendet (dieses Objekt).

und in CMemMapFile - der Handle wird in public m_hmem gespeichert

 
sergeev:

in der Klasse CMemMapApi sollte das Speicherhandle von dem Programm gespeichert werden, das es verwendet (dieses Objekt).

und in CMemMapFile - der Handle wird in public m_hmem gespeichert .

Dann verstehe ich etwas nicht sehr gut :)

nach dem Schließen der Datei angeben, dass sie in einem anderen Programm geöffnet werden kann oder

wird sie nach dem Schließen zerstört?

und wenn die Datei zerstört und der Speicher freigegeben wird?

 
Urain:

Dann verstehe ich etwas nicht ganz richtig :)

Geben Sie an, dass eine Datei nach dem Schließen in einem anderen Programm geöffnet werden kann oder

wird sie nach dem Schließen zerstört?

und wenn die Datei zerstört und der Speicher freigegeben wird?

Aha herausgefunden, können Sie nicht übergeben Handles, sondern nur eine neue Öffnung in einem neuen Thread durch den Dateinamen zu machen.
 
Urain:

Aha, ich habe es herausgefunden, man kann keine Handles übergeben, sondern einfach eine neue Öffnung in einem neuen Thread nach Dateinamen vornehmen.
Nun Nikolay, warum habe ich all dies tun? :) natürlich, so dass verschiedene Software gleichzeitig zu einer gemeinsamen Datei schreiben/lesen können.
 
sergeev:
Nun Nikolay, warum habe ich das alles gemacht? :) natürlich, damit verschiedene Software gleichzeitig in eine gemeinsame Datei schreiben/lesen kann.
Alex, ich danke dir für deine Arbeit. Ich habe noch nicht versucht, es zu benutzen, da es ein neues Thema für mich ist, das ich lesen muss (Rashid hat Artikel vorgeschlagen). Im Moment habe ich nur eine Frage. Im Titel des Themas wird es betont - ohne DLL. Aber es wird auf kernel32.dll und auf msvcrt.dll verwiesen. Also ist diese Lösung nicht für den Markt geeignet?
 
tol64:
Alex, ich danke dir für deine Arbeit. Ich habe noch nicht versucht, es zu benutzen, da es immer noch ein neues Thema für mich ist, das ich lesen muss (Rashid schlug Artikel vor). Aber hier ist eine Frage für den Moment. Im Titel des Themas wird hervorgehoben - ohne DLL. Aber es wird auf kernel32.dll und auf msvcrt.dll verwiesen. Also ist diese Lösung nicht für den Markt geeignet?

Sie ist nicht für den Markt geeignet (obwohl sie noch in Frage steht), aber Renat sagte, dass er über die Implementierung solcher Dinge im MQL5-Standard nachdenken würde.

Im Titel meinte ich ohne selbstgeschriebene dlls, schließlich sind die Standard-Windows-dlls sicherer als selbstgeschriebene.

 
Urain:

Mit dem Titel war gemeint, ohne selbstgeschriebene DLLs, denn die Standard-Windows-DLLs sind sicherer als selbstgeschriebene.

Ja, ich meinte ohne selbstgeschriebene dlls. Und Standard-Dlls sind sicher in dem Sinne, dass jeder weiß, was sie tun.
für den Markt ist diese Lösung (nach den bestehenden Regeln) nicht geeignet.


Aber der Markt wird (so hoffe ich doch) meine vorgeschlagene Variante als Basisvariante akzeptieren - man kann einen Expert Advisor veröffentlichen, der Funktionen aus der ex5-Bibliothek aufruft.

Das heißt, alle dll-Aufrufe werden in ex5 platziert, das nicht auf dem Markt veröffentlicht wird, sondern entweder in der Codebase oder auf der Website des Entwicklers liegt.