come scaricare la dll - pagina 7

 

AlexEro,

Sono tornato dalle vacanze, vedo che hai i bastardi addosso. Uccidiamoli insieme. )))))

HIdeYourRichess,

Il problema di caricare la dll dopo aver cancellato l'indicatore esiste davvero, ma non è a causa della presenza o assenza di errori nel codice della dll stessa, ma perché gli sviluppatori hanno limitato l'uso di librerie esterne con i cosiddetti "limiti ragionevoli".

Quali siano questi limiti, non lo so; non si sono preoccupati di spiegarli in dettaglio. Tuttavia, finché la libreria rientra in questi limiti, gli upload e i download vanno bene.

Ma non appena un programmatore disturbato inizia a manipolare con eccessivo zelo la memoria o a rubare il tempo del processore dal terminale per i suoi calcoli o a toccare la sacra (oh cielo) - coda dei messaggi di terminal.exe, il malefico methaquot si vendicherà.

La Dll che non viene scaricata non è una novità. Ho incontrato queste cose che mi fanno arricciare i capelli. Per esempio, alcuni indicatori (che non contenevano chiamate DLL, si badi bene) hanno cominciato ad arrampicarsi nello spazio degli indirizzi degli altri. E anche dopo una chiamata di una semplice funzione dalla DLL (anche senza fare nulla - ho provato appositamente!) il terminale ha improvvisamente saltato(!) le linee del programma MQL. Il ciclo sulla serie temporale for(i=limit;i>=0;i--) dopo averlo terminato è volato nella zona degli indici negativi (il che è stato inevitabilmente confermato dagli avvisi)!!! Ciò che stupì più di tutto fu che terminal.exe, dopo aver riconosciuto tutta la comicità della situazione dopo un certo numero di millisecondi e essersi cagato immediatamente, smise immediatamente di sferragliare e riportò i al suo valore originale di 0. Come se non fosse successo nulla.

Discutiamo cosa fa l'utilità regsvr dopo aver risolto gli errori di gestione del codice dei programmi Ex4.

 
HideYourRichess >> :

Ancora una volta - non ho un problema con dll da nessuna parte. Se avete problemi, sono i vostri problemi di programmazione, né MS né MT sono probabilmente da biasimare. E il fatto che tu debba usare il "vecchio" VC - dovrebbe essere chiaro comunque.

Un uomo divertente.

Tutto si risolve con i test.

.

Quindi prendete il dll, tiratelo fuori dall'EA - se può essere rimosso

con MT running, ecco, sei un eroe, complimenti!

E se fallisce, perché lo stai scrivendo qui? Per chi?

In modo che i clienti vedano che tipo di trattamento riceveranno quando lavoreranno con i vostri prodotti?

O perché tutti sappiano esattamente a chi non chiedere consigli?

.

Ora sto pensando, che tipo di risposta vorrebbero le persone che hanno fatto la domanda?

molto probabilmente questo: creare un exe, caricare una dll con collegamento dinamico in esso

tramite GetProcAddress() ed estrarre le chiamate.

Se quando l'Exe è in esecuzione non rimuove la Dll dopo averlo scaricato, avete un problema.

Questo si chiama ottenere un vero risultato oggettivo invece di inventare

alcuni "errori" della "vostra programmazione".

E a questo risultato ottenuto si può arrivare con una teoria :-)...

.

Le teorie, mi pento, sono state tutte inventate qui.

Ma questo è perché sei troppo pigro per alzare la % per rispondere correttamente.

.

E VBAG... beh... Bravo!

Una descrizione sensata del problema, un caso di studio specifico, tutto è diventato nitidamente chiaro.

Anche se per te, se stai lavorando con un application server, la sostituzione della dll non sarà così rilevante presto :-).

.

Francamente parlando - per il debug è meglio avere dati *statici* in un file.

Fate in modo che un EA scarichi i dati in un file per voi.

Negli ultimi 7 anni ho letto e scritto file multi-megabyte in una sola riga - tutto è molto veloce.

E per un file separato da tabulazioni potete convertire questa grande stringa in una matrice in una sola volta e senza substr()

(in decimi di secondo), perché dividere in stringhe e poi in colonne è in qualche modo troppo

troppo lento (era qualche secondo). In modo che se qualcosa si blocca, il problema può essere *garantito*.

riprodurre, piuttosto che dipendere da generatori di numeri casuali.

.

E con questo approccio (!) i test sarebbero semplificati. Perché non è una Dll.

Perché il pulsante di esecuzione in ONE CLICK compila, slitta, esegue e l'exe stesso prende i dati necessari.

.

P.S.: solo i problemi di "programmazione" possono essere risolti...

 

Sono d'accordo con i compagni precedenti che la mia DLL dovrebbe essere usata in MT4 con cura e limitazione. Questo significa quanto detto sopra, così come il fatto che dovreste sviluppare la vostra DLL gradualmente, e senza esotici. La vostra DLL è un ospite temporaneo nella casa di un altro semi-interprete in MQL4.

2 alsu: sono malato, non ho niente da fare, non posso condurre un progetto intelligente a letto, ma una conversazione con i nerd non richiedeva molto sforzo mentale, così l'ho scarabocchiata. sto aspettando quando la loro coscienza si sveglierà, ma non è ancora visibile, solo demagogia e verbosità ....

 
alsu >> :

Il problema con lo scaricamento della DLL dopo la rimozione dell'indicatore esiste davvero, ma è collegato non alla presenza o assenza di errori nel codice della DLL stessa, ma al fatto che gli sviluppatori hanno limitato l'uso di librerie esterne con i cosiddetti "limiti ragionevoli".

alsu >> :

Quali sono questi limiti - il cazzo lo sa, non si preoccupano di spiegarlo in dettaglio. Tuttavia, finché la libreria rientra in questi limiti, upload e download vanno bene.

Ma non appena un programmatore disturbato inizia a manipolare con eccessivo zelo la memoria o a rubare il tempo del processore dal terminale per i suoi calcoli o a toccare la sacra (oh cielo) - coda dei messaggi di terminal.exe, il malefico methaquot si vendicherà.

La Dll che non viene scaricata non è una novità. Ho incontrato queste cose che mi fanno arricciare i capelli. Per esempio, alcuni indicatori (che non contenevano chiamate DLL, si badi bene) hanno cominciato ad arrampicarsi nello spazio degli indirizzi degli altri. E anche dopo una chiamata di una semplice funzione da una DLL (anche senza fare nulla - ho provato appositamente!) il terminale ha improvvisamente saltato(!) linee di programma MQL. Il ciclo sulla serie temporale for(i=limit;i>=0;i--) dopo averlo terminato è volato nella zona degli indici negativi (il che è stato inevitabilmente confermato dagli avvisi)!!! Ciò che stupì più di tutto fu che terminal.exe, dopo aver riconosciuto tutta la comicità della situazione dopo un certo numero di millisecondi e essersi cagato immediatamente, smise immediatamente di sferragliare e riportò i al suo valore originale di 0. Come se non fosse successo nulla.

Discutiamo cosa fa l'utilità regsvr dopo aver corretto gli errori di elaborazione del codice eX4.

Come si dice, puoi rompere il cazzo se sei stupido. In altre parole, se non potete scrivere programmi normali e funzionanti in MQL - è un problema vostro, non di MQL, tutto qui. Puoi scrivere una DLL buggata in C, ma questo non cancella il fatto che il C sia un grande linguaggio. E anche qui, un cattivo ballerino, cioè tu, si mette in mezzo alle bolle. Capisco il vostro desiderio di incolpare MT o MS per i vostri errori. Se non va via con l'età, niente ti aiuterà.

 
HideYourRichess >> :

Qui, come si dice, ci si può stupidamente rompere il cazzo. In altre parole, se non potete scrivere programmi decenti in MQL - è un problema vostro, non di MQL, tutto qui. Puoi scrivere una DLL buggata in C, ma questo non cancella il fatto che il C sia un grande linguaggio. E anche qui, un cattivo ballerino, cioè tu, si mette in mezzo alle bolle. Capisco il vostro desiderio di incolpare MT o MS per i vostri errori. Se non va via con l'età - allora niente vi aiuterà più.

A giudicare dal tuo avatar, alla tua età non c'è niente da rompere e niente da interferire.

Avete visto le mie DLL? Perché mai dovresti chiamarle brutte parole? Non ho mai scritto glitch - non ho tempo per farlo. Il glitch in questo caso è stato scritto con le meta-citazioni (non sto facendo affermazioni alla MS, a proposito). Se voi non mettete mai qualcosa di più complesso di 2 +2 in un dll, non significa che gli altri non lo facciano. 2 +2 non si guasta.

 
jartmailru >> :

Un uomo divertente.

Tutto si risolve con i test.


L'ho testato - per me funziona bene.


jartmailru >> :

Quindi prendete il dll, tiratelo fuori dall'EA - se può essere rimosso

con MT running, ecco, sei un eroe, complimenti!

E se fallisce, perché lo stai scrivendo qui? Per chi?

Così i clienti possono vedere come saranno trattati mentre lavorano con i vostri prodotti?

O perché tutti sappiano esattamente da chi non dovrebbero andare a chiedere consigli?


Cosa vuol dire "può essere rimosso"? Le mie DLL nell'EA si comportano decentemente. Devo fare qualcosa di completamente sbagliato.

 
HideYourRichess >> :

>> questo è il vostro problema, non MQL.

Se l'interprete non è glitchato, non salterà i comandi nel codice, anche se ti caghi addosso!

 
HideYourRichess >> :

Cosa vuol dire "può essere rimosso"? Le mie DLL nell'EA si comportano decentemente. Devo fare qualcosa di completamente sbagliato.

Quello che voglio dire è che devi specificare una specifica dll nell'EA.

Poi devi eseguire l'Expert Advisor e non uscire da Metatrader.

Poi, il caso d'uso più importante è quello di fingere che stiamo sostituendo la dll con una nuova.

Se fallisce quando il metatrader è in funzione (e controllo cancellando il file) - allora

allora il sistema pensa che la DLL sia in uso...

voilà. Il vostro Expert Advisor è finito e la dll non è stata rimossa.

Ora dovete riavviare l'intera applicazione per sostituire la Dll.

 
AlexEro >> :

Sono malato.

H1N1;)

>> hanno detto che hanno ricevuto il prefisso.

 
alsu >> :

A giudicare dal tuo avatar, alla tua età non c'è niente da rompere e niente da interferire.

Avete visto le mie DLL? Perché mai dovresti chiamarle brutte parole? Non ho mai scritto glitch - non ho tempo per farlo. Il glitch in questo caso è stato scritto con le meta-citazioni (non sto facendo affermazioni alla MS, a proposito). Se voi non mettete mai qualcosa di più complesso di 2 +2 in un dll, non significa che gli altri non lo facciano. 2 +2 non si guasta.


Oooooh, muyuye si è abbassato a cercare di prendere in giro l'avatar. Il passo successivo è cercare di prendere in giro il soprannome.


Di cosa parlava nel suo precedente discorso, di quali orrori raccontava a un pubblico stupito? Guardandolo, sono sinceramente perplesso. Bisognerebbe lavorare molto duramente per ottenerlo. Da qui le cattive parole sulle vostre DLL. Ma se questi orrori che hai descritto non riguardano i dll, perché li racconti?


A proposito, cosa significa 2+2? È una misura di difficoltà? Provate a implementare qualcosa come 2+2 da soli come in Excel e sarete sorpresi di quanto sia difficile.