Discussione su "Come scrivere una DLL per MQL5 e scambiare dati in 10 minuti". - pagina 9
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
Dovresti migliorare il tuo livello tecnico.
Per i programmi a 64 bit avete bisogno di librerie a 64 bit e non c'è modo di collegare ragionevolmente le librerie a 32 bit. Per installare la versione a 32 bit, il programma di installazione deve essere eseguito con lo switch /32
Riscriverò l'articolo e aggiungerò caratteristiche interessanti che sono state implementate da tempo in MetaEditor e nelle piattaforme MT4 e MT5. Molti sviluppatori non sono a conoscenza delle nuove caratteristiche.
E vedo che Microsoft ha iniziato a comprimere il C++. Nell'ultimo compilatore hanno persino rimosso la possibilità di lavorare con i moduli in C++. E quando ho chiesto perché? La risposta è perché non provi il nuovo e migliorato C++. Quindi, se si guarda al futuro, si dovrebbe tenere conto anche di questo.
Beh, Microsoft è un noto assassino della tecnologia, e ultimamente si sta scavando una tomba dopo l'altra.
Perché interferire con esso - lasciarlo cadere nel suo stesso buco. È così in senso figurato, per non perdere tempo in dettagli tecnici. Chi vuole i dettagli - ce ne sono migliaia su Internet. Dopo "meglio C#" non ho altre parole.
Dovresti migliorare il tuo livello tecnico.
Per i programmi a 64 bit avete bisogno di librerie a 64 bit e non c'è modo di collegare ragionevolmente le librerie a 32 bit. Per installare la versione a 32 bit dovete eseguire il programma di installazione con lo switch /32.
Riscriverò l'articolo e aggiungerò caratteristiche interessanti che sono state implementate da tempo in MetaEditor e nelle piattaforme MT4 e MT5. Molti sviluppatori non sono a conoscenza delle nuove caratteristiche.
Si è rivelato facile!
Installato il libero Visual Studio Community 2015 (esattamente Community, in quanto ha il supporto x64, a differenza di Express) Le versioni a pagamento hanno anche x64 naturalmente, ma stavo guardando le opzioni gratuite. Web Installer mi ha dato un errore, quindi ho installato dall'immagine ISO. Durante l'installazione, selezionate l'installazione "Custom" e spuntate C++ (non è installato di default).
Poi ho fatto tutto come descritto nell'articolo, cioè ho creato un progetto Win32. Ho fatto un assemblaggio, che il terminale x64 ha rifiutato di accettare (come previsto).
Poi nella scheda "Build" -> "Configuration Manager" ho cambiato la piattaforma in x64, (puoi anche cambiare "Active Solution Platform" in x64)
Costruito di nuovo. La nuova dll è risultata essere nella cartella \x64\Debug (la build finale sarà in x64\Release\), che il terminale x64 ha processato senza problemi e ha restituito il seguente output:
19:29:01.883 dll_test (EURUSD.e,H1) Tempo 16 msec, int: -752584127 double: 17247836076609.0
19:29:01.883 dll_test (EURUSD.e,H1) Array: 0 1 2 3 4 5 6 7 8 9
19:29:01.883 dll_test (EURUSD.e,H1) Sostituire: Un veloce gatto marrone salta il cane pigro
19:29:01.886 dll_test (EURUSD.e,H1) Violazione di accesso a 0x000007FEFB0F176F scrivere a 0x000000000000 in '...\MQL5\Libraries\ConsoleApplication1.dll'
e ulteriore descrizione dell'errore intercettato
Cioè, tutto funziona!!!
Nota:
Quando si trasferisce la DLL su un altro computer, si rifiuta di funzionare perché sta usando componenti di VS stesso. Il problema è risolto in Project -> Properties -> Use MFC, impostato su "Use MFC in static library". Dopo aver ricostruito e ricompilato la DLL
L'ho trovato sul forum:
È possibile ottimizzare gli EA con le DLL non solo sul computer locale, ma anche su una rete locale. Per fare questo sui computer di rete, aggiungete la chiave /dlls al registro di sistema per gli agenti di prova. Chiamare l'editor di registro: regedit
Renat Fatkhullin:
Per gli agenti installati esistenti, i comandi di avvio possono essere cambiati solo attraverso il registro di sistema nei rami HKEY_LOCAL_MACHINE\SYSTEM\urrentControlSet\Services\MetaTester-XXXX
Cliccate semplicemente su ogni parametro ImagePath e aggiungete /dlls alla fine della linea
Sono in procinto di legare ZeroMQ a MT4 tramite DLL.
In qualche modo è molto brutto. Il terminale si blocca sempre quando si avvia l'indicatore o quando si scarica. E non appare in modalità debug, quindi non so cosa stia succedendo.
Buon pomeriggio.
Per qualche ragione, quando eseguo l'esempio di test, lo script va in crash alla prima chiamata alla funzione importata
2016.07.30 23:30:14.088 Script script mql5dll_test (EURUSD,H1) rimosso
Cosa sto facendo di sbagliato?
Buon pomeriggio.
Per qualche ragione, quando eseguo l'esempio di test, lo script va in crash alla prima chiamata alla funzione importata
2016.07.30 23:30:14.088 Script script mql5dll_test (EURUSD,H1) rimosso
Cosa sto facendo di sbagliato?
questo articolo è vecchio di 6 anni, qualcosa deve essere cambiato.
Qual è il codice di errore?