Come codificare? - pagina 205

 

Aiuto con una semplice chiamata DLL?

Quindi tutto quello che voglio fare è ottenere l'Acc# di MT4 da una DLL.

Dll_call chiede a Dll_call_include il doppio"GetAccountNumber()" da Dll_call.dll

L'ea si carica bene anche con l'Acc# sbagliato nella dll. Mt4 chiede di usare la dll.

i 3 file sono nelle 3 cartelle giuste, la dll è un file .dll (allegato come .txt per visualizzare il codice.

qualcuno potrebbe per favore visualizzare il codice per gli errori?

grazie

File:
 

Hai incluso GetAccountNumber in un file .def nella tua dll compilata? Devi fare questo per farlo funzionare.

Inoltre, assicurati che Allow Dll imports sia selezionato per il tuo esperto.

Spero che questo aiuti.

-wolfe

 

Ho letto che l'aggiunta del file def alla cartella librarys dove si trova la DLL può risolvere questo problema, ma no.

Ho anche letto di aggiungere la DLL alla cartella system32, ancora no.

Ho intenzione di inviare questo progetto via e-mail alla gente, quindi preferirei non dover dire come mettere 4 file diversi in cartelle diverse. è questo l'unico modo?

Il codice nei 3 file è giusto?

grazie mille

 

Questo è il file def. sembra ok?

Deve andare in libreria con la DLL?

 
jimmynz:
Questo è il file di def. sembra ok? Deve andare nelle librerie con la DLL?

Il file .def fa parte della tua soluzione compilata in c++. Poi copio la mia dll compilata in c++ nella cartella system32 di windows. Uso un sistema a 32 bit con windows xp.

Nemmeno io sono un esperto di c++, ma è così che sono riuscito a farlo funzionare.

 

grazie per l'aiuto, ma ancora no.

La cosa strana è che ho provato a fare un EA con il solito codice per controllare l'acc #:

int a = 907671;

int b = AccountNumber();

se (b != a) {

Alert("Controllo numero di conto! (" + DoubleToStr(li_16, 0) + ") Acc sbagliato");

return (0)}

come EA carica non importa quale sia il numero, ma se lo faccio come indi funziona bene?

ggrrr

 

...

Il tuo EA si caricherà sempre (se non ha un errore di codifica che gli impedirebbe di compilare)

Devi solo decidere dove vuoi che smetta di fare il "solito lavoro" che fa e impedirgli di farlo per quelli non autorizzati. Normalmente si mette la routine di controllo all'inizio della start() - qualcosa del genere:

//+------------------------------------------------------------------+

//| Dll_call.mq4 |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

static bool alerted = false;

int a = 907671;

int b = AccountNumber();

if (b != a)

{

if (!alerted)

{

Comment("Checking Account No! (" + DoubleToStr(b, 0) + ") wrong Acc");

alerted = true;

}

return (0);

}

//

//

// the part that is not executed when account number is wrong

//

//

alerted = false;

Comment("continuing the rest of the job");

return(0);

}

Ma anche questo tipo di controllo è violabile da un decompilatore in pochi minuti.

PS: ho cambiato Alert() in Comment() in modo da poterlo controllare in visual back test

jimmynz:
grazie per l'aiuto, ma ancora no.

La cosa strana è che ho provato a fare un EA con il solito codice per controllare l'acc #:

int a = 907671;

int b = AccountNumber();

se (b != a) {

Alert("Controllo numero di conto! (" + DoubleToStr(li_16, 0) + ") Acc sbagliato");

return (0)}

come EA carica non importa quale sia il numero, ma se lo faccio come indi funziona bene?

ggrrr
 
 
luxinterior:
Quindi il tuo grande piano è quello di prendere due EA gratuiti che probabilmente hai trovato qui e "fonderli" insieme e venderli per 2K a botta? Hai una bella faccia tosta, amico! Forse, se sei davvero fortunato, uno dei due ragazzi che hanno effettivamente dato il loro tempo, sforzo e conoscenza gratuitamente si offrirà di farlo per te.

Oh, ma aspetta! Se il codice è "incasinato" allora gli EA sono molto probabilmente EA commerciali che sono stati decompilati. È così? Idiota!!!

Lux

Oh, bel discorso. Lascia che ti dica questo:

Non importa quale EA tu stia guardando, molto probabilmente ci sarà qualcuno con la stessa idea che ha già fatto l'EA. EA gratis? Mi stai prendendo in giro? Quale EA proprio su questo forum aveva questo potenziale?

Inoltre, ci sono un sacco di persone che si definiscono sviluppatori che copiano da altri, vendendo per 3000 dollari gli abbonamenti al club. E peggio ancora, con EA che fanno saltare i vostri conti. .... ZERO

Inoltre, non ho mai preso nessun EA da qui. Quale EA vale la pena per la fusione su questo forum? Inoltre, se il codice è incasinato, potrei essere io a chiedere ai programmatori di codificare un EA. Poi, man mano che sono necessarie altre caratteristiche, sto chiedendo a diversi programmatori... di aiutarmi!

Diversi stili di codifica potrebbero nel tempo, incasinare i codici.

Inoltre, non ho decompilato nessun EA commerciale. Il motivo per cui hai detto che lo sto facendo, è il fatto che lo stai facendo tu stesso. Non so che tipo di casino possa causare un decompilatore. Ma di sicuro, se sei così sicuro che un decompilatore potrebbe causare un casino, allora probabilmente lo stai usando. Altrimenti non lo sapresti mai.

Un consiglio, prima di chiamare gli altri idioti o cercare di agire come un poliziotto/eroe che salva la giornata, giudica te stesso prima. In caso contrario, quelle parole che escono dalla tua bocca potrebbero costringerti a ingoiarle di nuovo.

Grazie.

 

Aiuto su iMAOnArray()

Salve,

sono nuovo di MT4... Ho cercato disperatamente di includere il seguente pezzo di codice in un esperto ma non ci sono riuscito

"iMAOnArray(ind_buffer1,Bars,SignalEMA,0,MODE_EMA,i); "

Sì, so che quanto sopra non può essere usato direttamente in un EA, ma è possibile ottenere gli stessi risultati ricodificando il suddetto MA?

Saluti.