Erreurs, bugs, questions - page 2444

 
fxsaber:

Du côté du développeur, il suffit d'avoir la volonté, car il faut une minute pour le faire.

Il suffit de donner le hash du code natif avant "l'obfuscation" dans EX5.

Eh bien, cela change aussi sans changer le code, si je comprends bien.
 
Andrey Khatimlianskii:
Eh bien, cela change aussi sans aucune modification du code, si je comprends bien.

Le résultat de la compilation est toujours le même. Il n'y a pas de hasard.

Et puis ce résultat est poussé vers EX5, où la protection est aléatoire.

 
fxsaber:

Concernant la suppression des espaces supplémentaires, le problème est résolu en 4 lignes via le style SQL :

   string test = "AB C  D   E    F     G";
   Print(test);
   
   string delimeter = "{}?##%%";
   StringReplace(test, "  ", " " + delimeter);
   StringReplace(test, delimeter + " ", "");
   StringReplace(test, " " + delimeter, " ");

   Print(test);

Résultat :

2019.04.24 15:08:09.150 Test (EURUSD,H1)        AB C  D   E    F     G
2019.04.24 15:08:09.150 Test (EURUSD,H1)        AB C D E F G



L'essentiel est le désir, comme on dit.

 
Sergey Dzyublik:

En ce qui concerne la suppression des espaces supplémentaires, la tâche est résolue en 4 lignes via le style SQL :

string test = "AB C  D \"   \"  E    F     G";
 
fxsaber:

Le résultat de la compilation est toujours le même. Il n'y a pas de hasard.

Et puis ce résultat est envoyé dans EX5, où la protection est aléatoire.

Et une somme de contrôle qui ne dépend pas des changements dans l'ex5 entre dans l'opt ?

Alors oui, les développeurs pourraient y donner accès.

 
fxsaber:

Vous devez résoudre un problème, ou trouver une raison de ne pas le résoudre ?

 
Andrey Khatimlianskii:

Et l'opt obtient une somme de contrôle qui ne dépend pas des modifications apportées à ex5 ?

Non, c'est ex5 qui entre dans opt. C'est la raison pour laquelle la recompilation réinitialise le cache du testeur.

 
Sergey Dzyublik:

Vous devez résoudre un problème, ou trouver une raison de ne pas le résoudre ?

La tâche a été exprimée. J'ai besoin que le résultat de l'exécution du programme soit réinitialisé dans un fichier avec un nom différent lorsque la logique (code natif) est modifiée.

 

Le programme ne fonctionne pas, j'ai découvert par expérience qu'il se plante sur cette ligne :

boost::asio::connect(*socket_, endpoint) ; (from tick_receiver.cpp )

de cette fonction :


_DLLAPI int __stdcall client_connect(int port){ // pas de taille variable ici pour cette erreur


boost::asio::ip::tcp::resolver resolver(io) ;

boost::asio::ip::tcp::resolver::results_type endpoint = resolver.resolve("127.0.0.1", std::to_string(port)) ;

boost::asio::connect(*socket_, endpoint) ; // c'est ici que ça se termine

retour 1 ;

}



2019.04.24 15:17:45.306 test_tick_receiver (EURUSD,H1) Violation d'accès à 0x00007FFC1AF29200 en lecture à 0x0000000000000000 dans 'C:\Users\rukpe\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\tick_receiver.dll'.

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) crash --> 00007FFC1AF29200 498B4D00 mov rcx, [r13+0x0]

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 00007FFC1AF29204 33C0 xor eax, eax

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 00007FFC1AF29206 49837D08FF cmp qword [r13+0x8], 0xff

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 00007FFC1AF2920B 742D jz 0x7ffc1af2923a

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1)

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 00007FFC1AF2920D 33D2 xor edx, edx

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 00007FFC1AF2920F F0480FB15138 lock cmpxchg [rcx+0x38], rdx

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 00007FFC1AF29215 740C jz 0x7ffc1af29223

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1)

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1)

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 00 : 0x00007FFC1AF29200

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 01 : 0x000001BA759C1F40

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 02 : 0xFFFFFFFFFFFFFFFFFFFF

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 03 : 0x000001BA6E450000

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 04 : 0x000001BA7575C5A0

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 05 : 0x0000002E16AFE670

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 06 : 0x00000FED243F54C5

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 07 : 0x000001BA6E452000

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1) 08 : 0x00007FF7DAEC6000

2019.04.24 15:17:45.338 test_tick_receiver (EURUSD,H1)


Dossiers :
1.zip  54 kb
 
fxsaber:

Non, c'est ex5 qui obtient le hachage en opt. Pour cette raison, la recompilation réinitialise le cache du testeur.

Alors les développeurs ne vous aideront pas, écrivez votre propre analyseur de code.

Raison: