et encore dll et marché

 

Bonjour !

Règle n° 1 : le dll n'est pas autorisé sur le marché. Ok, c'est compréhensible.)

Maintenant, la situation

Je pense qu'il existe une fonction utile qui fonctionne bien dans le wrapper Expert Advisor, mais elle n'est pas complètement non commerciale. Il utilise la méthode onTimer pour fonctionner. La DLL est utilisée pour l'opération de renommage du fichier (il n'y a pas de possibilité dans MQL de créer un fichier avec l'extension vbs :) et de lancer ce script Visual Basic avec une commande shell. Dangereux, je comprends.

Comment fournir une fonctionnalité via Market avec de telles entrées ?

 
Nikolai Karetnikov:

Bonjour !

Règle n° 1 : le dll n'est pas autorisé sur le marché. Ok, c'est compréhensible.)

Maintenant, la situation

Je pense qu'il existe une fonction utile qui fonctionne bien dans le wrapper Expert Advisor, mais elle n'est pas complètement non commerciale. Il utilise la méthode onTimer pour fonctionner. La DLL est utilisée pour l'opération de renommage du fichier (il n'y a pas de possibilité dans MQL de créer un fichier avec l'extension vbs :) et de lancer ce script Visual Basic avec une commande shell. Dangereux, je comprends.

Comment puis-je fournir la fonctionnalité via Market avec ces entrées ?

quelqu'un ?

Pour l'instant, j'ai l'idée de déplacer la classe dans laquelle les appels de la dll sont exécutés dans une bibliothèque séparée et de l'associer à la description.

Au fait, pour que la fonctionnalité fonctionne, j'ai besoin de plus de fichiers csv qui doivent se trouver dans le répertoire mql5\files. Y a-t-il un moyen de l'attacher à la description ?

 
Nikolai Karetnikov:

Quelqu'un ?

Jusqu'à présent, j'ai eu l'idée de déplacer la classe dans laquelle les appels de dll sont effectués vers une bibliothèque séparée et de l'attacher à la description par référence.

Au fait, pour travailler

Pourquoi ?

La règle principale du marché - dll et autres activités suspectes sont interdites. Les dépendances à l'égard de tout objet externe (indicateurs et bibliothèques) sont interdites.

En supprimant les appels à une classe ou à une bibliothèque, vous ne vous débarrasserez en aucun cas de la DLL.

PS/ en vendant une chose aussi suspecte (créer et exécuter un VBS à partir d'un logiciel fermé), vous devez prendre votre responsabilité personnelle et personne ne voudra être un intermédiaire.

 
Nikolai Karetnikov:

Quelqu'un ?

Jusqu'à présent, j'ai eu l'idée de placer la classe dans laquelle les appels de dll sont effectués dans une bibliothèque séparée et de l'attacher à la description.

Au fait, j'ai besoin du fichier csv qui doit se trouver dans le répertoire mql5\files. Est-il possible de le joindre à la description en tant que pièce jointe ?

Le terminal lui-même ne dispose-t-il pas de suffisamment de fonctions ? Que peut faire un programme tiers que le terminal ne peut pas faire ? ????????????????????.

 
Maxim Kuznetsov:

Pourquoi ?

La règle de base du marché est que les dlls et autres activités suspectes sont interdites. Les dépendances à l'égard de tout objet externe (indicateurs et bibliothèques) sont interdites.

En transférant les appels vers une classe ou une bibliothèque, vous ne vous débarrasserez en aucun cas de la DLL.

PS/ en vendant une chose aussi suspecte (créer et exécuter un VBS à partir d'un logiciel fermé) vous devez prendre votre responsabilité personnelle et personne ne voudra être un intermédiaire.

Je ne comprends pas le mécanisme même d'une telle division jusqu'à présent. Disons que voici le code de la classe dans laquelle on accède à la dll

class cIntSpeech
  {

public:
   void Say(string aText)
     {
      
      if(!MQL5InfoInteger(MQL5_DLLS_ALLOWED))
        {
         Alert(__FUNCTION__+": Allow dll");
         return;
        }
     
     string m_fntxt="sspeechexample.txt";
     string m_fnvbs="sspeechexample.vbs";
      
     int h=FileOpen("sspeechexample.txt",FILE_ANSI|FILE_WRITE);
     FileWrite(h,"CreateObject(\"SAPI.SpVoice\").Speak\""+aText+"\"");
     FileClose(h);

     string srcvbs = TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files\\sspeechexample.txt"; //+MQLInfoString(MQL_PROGRAM_NAME)+".mq5";
     string dstvbs = TerminalInfoString(TERMINAL_DATA_PATH)+"\\MQL5\\Files\\sspeechexample.vbs"; //"+MQLInfoString(MQL_PROGRAM_NAME)+".vbs";
         if(CopyFileW(srcvbs,dstvbs,0)){
            Print("Файл скопирован");
            }
             else{
         Print("Не удалоcь скопировать файл");   
   }
   int r = -1;
   r = ShellExecuteW(NULL,NULL,dstvbs,"","",0);
   Print("Код ошибки %d", r);
      
     }
  };



Dans le conseiller expert lui-même, qui sera situé dans le marché, il y a 3-4 classes supplémentaires, tandis que la dll n'est traitée que dans une seule. Supposons que je modifie la classe DLL dans le code de l'expert, que je remplace shellexecute() et copyW() par printf() et que je mette tous les hiboux en conformité avec les règles.

Comment faire en sorte qu'il soit pratique pour un acheteur potentiel de remplacer une classe sûre mais inutile par une vraie classe qui fait un travail utile ?

 
Alexsandr San:

Le terminal lui-même ne dispose-t-il pas de suffisamment de fonctionnalités ? Que peut faire un programme tiers que le terminal ne peut pas faire ? ????????????????????.

beaucoup de choses :)

Mais en particulier, MQL5 ne peut pas créer un fichier .vbs.

 

Quelque chose me dit que ce magicien a besoin d'être mis en quarantaine pour un long moment.

Расширение VBS – это скрипт, написанный на языке Visual Basic, используется для выполнения команд и программ в среде Windows. VBS скрипты интерпретируются или оконным интерпретатором WScript.exe, или консольным – CScript.exe (вместе они – Windows Script Host или WSH). Файлы .VBS могут так же иметь расширение .VB. Создавать скрипты VBS можно в блокноте или в любом другом текстовом редакторе, т.к. VBS – это текстовый формат. VBScript был создан Microsoft в качестве замены устаревшему языку .CMD, интерпретируемому приложением command.com.
Скрипты VBS чаще всего используются при автоматизации администрирования систем Windows или при написании кода на страницах Classic ASP, или в клиентских скриптах в браузере Internet Explorer.

REMARQUE : Faites attention, les fichiers .VBS peuvent être infectés par un code malveillant ou un cheval de Troie. Utilisez un antivirus pour analyser les fichiers .VBS avant de les ouvrir, surtout si vous recevez le fichier par courrier ou si son origine est inconnue.

Source : http://fileext.ru/vbs

Pourquoi diable essayer si fort de mettre cela sur le marché ????

 
Nikolai Karetnikov:

beaucoup de choses :)

Mais en particulier, MQL5 ne peut pas créer un fichier .vbs.

Vous pouvez également créer des fichiers .bat et .cmd.

 
Nikolai Karetnikov:

Bonjour !

Règle n° 1 : le dll n'est pas autorisé sur le marché. Ok, c'est compréhensible.)

Maintenant, la situation

Je pense qu'il existe une fonction utile qui fonctionne bien dans l'enveloppe de l'Expert Advisor, mais qui ne permet pas du tout de faire du commerce. Elle utilise la méthode onTimer pour fonctionner. La DLL est utilisée pour l'opération de renommage du fichier (il n'y a pas de possibilité dans MQL de créer un fichier avec l'extension vbs :) et de lancer ce script Visual Basic avec une commande shell. Dangereux, je comprends.

Comment puis-je fournir une fonctionnalité via Market avec de telles entrées ?

Pouvez-vous déchiffrer la phrase soulignée ? )) Des wrappers pour la plupart des fonctions de l'API Win ont été réalisés depuis longtemps. Vous pouvez les utiliser sur le marché. J'ai spécifiquement demandé à Renat.

\MQL5\Include\WinAPI\...

 
Alexey Volchanskiy:

Pouvez-vous déchiffrer la phrase soulignée ? )) Les enveloppes pour la plupart des fonctions de l'API Win ont été réalisées il y a longtemps. Vous pouvez les utiliser sur le marché, j'ai demandé à Renat de le faire.

\MQL5\Include\WinAPI\...

Je n'y crois pas !

Alexei, c'est toi ? Pour être franc, tu me manques vraiment sur ce forum... Vous êtes tous si ternes et renfrognés...

 
Alexey Volchanskiy:

Pouvez-vous déchiffrer la phrase soulignée ? )) Les enveloppes pour la plupart des fonctions de l'API Win ont été réalisées il y a longtemps. Vous pouvez les utiliser sur le marché, j'ai demandé à Renat de le faire.

{\MQL5\NInclude\N{\i1}WinAPI{\i}...

Ainsi, WinApi tire des fonctions de la Dll, alors que tous les appels de la Dll sont interdits.
Ce n'est pas clair ici. Je me souviens que les appels de WinApi sont au contraire interdits également.