Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
lib non si lega alle sezioni, perché teoricamente il codice può essere eseguito in processi diversi.
Per controllarlo, utilizzare la propria variante o https://www.mql5.com/it/code/1835, ad esempio.
Ho capito bene che se il mutex è nominato, posso ottenere il suo handle da qualsiasi processo, non solo da metatrader?
Domanda per l'autore.
Utilizzo la classe in mt4. Se spengo e riaccendo il terminale, tutto smette di funzionare. La via d'uscita non è molto comoda: devo cancellare gli Expert Advisor prima di spegnere e collegarli dopo aver acceso il terminale. C'è un modo per aggirare questo problema?
E il secondo. Non riesco a leggere la mappatura dei file creata da un programma scritto in Delphi. Quali possono essere le sfumature.
In breve, si tratta di pannelli di trading che funzionano su molti terminali.
Se si spegne e si riaccende il terminale, tutto smette di funzionare. La via d'uscita non è molto comoda: cancellare gli EA prima dello spegnimento e collegarli dopo l'accensione del terminale. Esiste un modo per aggirare questo problema?
È necessario registrare e vedere cosa succede ai file durante tale deinizializzazione. Non ci sono blocchi.
Non riesco a leggere la mappatura dei file
Quale funzione di winapi si intende per "read"?
È necessario registrare e vedere cosa succede ai file durante tale deinizializzazione. non ci sono blocchi.
Quale funzione di winapi si intende per "read"?
Il fatto è che la funzione
restituisce sempre 0.
Per questo non riesco a capire se il file è aperto.
Nell'immagine qui sopra c'è il log di Expert Advisor che apre una mappatura di file che non è ancora stata creata. E non ci sono errori.
Forse la funzione
CMemMapFile::Opennon dovrebbe essere inserita nell'int OnInit(), ma da qualche parte più avanti, per esempio in OnTick(), ma dato che l'handle restituito è sempre 0, non c'è la possibilità di fare un controllo per evitare di aprire il file costantemente ad ogni tick.
E per quanto riguarda la seconda domanda.
In Delphi ho creato un'applicazione che crea una mappatura di file. Quando la collego, si verificano degli errori. Vale a dire Numeri non passati correttamente. Ho cominciato ad allineare con {$Align Off}
Ho ottenuto altri errori come la violazione dell'accesso letto a 0x04E91000 in 'msvcrt.dll'.
Ora i dati sono allineati normalmente di 19 byte - "00:35:50.260 Panel v 1.00 GBPUSD.m,M5: OnInitsizeof(PipeData)= 19".
ma durante la lettura tutti i dati sono a zero.
Il fatto è che la funzione
restituisce sempre 0.
Per questo motivo non riesco a capire se il file è aperto.
Esatto, CMemMapFile::Open restituisce un codice di errore o 0 quando non c'è alcun errore.
(a differenza di CMemMapApi:, che restituisce un handle aperto e scrive l'errore nel parametro passato).
E l'handle è in m_hmem.
In delphi, si crea un'applicazione che crea una mappatura di file. Quando la si collega, si verificano degli errori. Vale a dire numeri non passati correttamente.
Tieni conto dei byte DWORD riservati all'inizio del file?4 byte? Proverò, non li ho contati.
Guarda come viene scritto o creato il file nel sorgente.
sul parametro m_size
è corretto, CMemMapFile::Open restituisce un codice di errore o 0 se non ci sono errori.
(a differenza di CMemMapApi:, che restituisce un handle aperto e scrive l'errore nel parametro passato).
E l'handle è in m_hmem.
Tiene conto dei byte DWORD riservati all'inizio del file?è m_hmem quando si apre una mappatura di file inesistente. Come determinare se si tratta di un errore o di un handle?
è m_hmem quando si apre una mappatura di file inesistente. Come determinare se si tratta di un errore o di un handle?