and again dll and market

 

Good afternoon!

Rule #1 dll is not allowed on the Market. Ok, that's understandable )

Now the situation

I think there is a useful function that works well in Expert Advisor wrapper, but it is not completely non-trading. It uses onTimer method for operation. The DLL is used for the file renaming operation (well there is no possibility in MQL to create a file with vbs extension :) and start this visual basic script with shell command. Dangerous, I understand.

How to provide functionality via Market with such inputs?

 
Nikolai Karetnikov:

Good afternoon!

Rule #1 dll is not allowed on the Market. Ok, that's understandable )

Now the situation

I think there is a useful function that works well in Expert Advisor wrapper, but it is not completely non-trading. It uses onTimer method for operation. The DLL is used for the file renaming operation (well there is no possibility in MQL to create a file with vbs extension :) and start this visual basic script with shell command. Dangerous, I understand.

How do I provide functionality via Market with these inputs?

anyone?

So far I have an idea to move the class in which the dll calls are executed into a separate library and pin it to the description.

By the way, for the functionality to work I need more csv file which should be in mql5\files directory. Is there any way to attach it to the description?

 
Nikolai Karetnikov:

anyone?

So far I have an idea to move the class in which the dll calls are made to a separate library and attach it to the description by reference.

By the way, to work

why ?

Market's main rule - dll and other suspicious activity is prohibited. Dependencies on any external objects (indicators and libraries) are forbidden.

By taking the calls away to a class or library you will in no way get rid of the DLL.

PS/ selling such a suspicious thing (forming and running VBS from closed software), you must take personal responsibility and no one will want to be a middleman.

 
Nikolai Karetnikov:

anyone?

So far I have an idea to put the class in which the dll calls are made into a separate library and attach it to the description.

By the way, I need csv file which should be located in mql5\files directory. Is it possible to attach it to the description as an attachment?

Don't you have enough functions, the terminal itself? What can a third-party program do that the terminal can't do ?????????????????????

 
Maxim Kuznetsov:

why ?

Market's basic rule is that dlls and other suspicious activity are forbidden. Dependencies on any external objects (indicators and libraries) are forbidden.

By taking the calls to a class or library you will in no way get rid of the DLL.

PS/ selling such a suspicious thing (forming and running VBS from closed software) you have to take personal responsibility and no one will want to be an intermediary.

I don't understand the very mechanism of such a division so far. Let's say here is the code of the class in which the dll is accessed

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);
      
     }
  };



In the Expert Advisor itself, which will be located in the Market, there are 3-4 more classes, while the dll is addressed in only one. Suppose I modify DLL class in expert's code, replace shellexecute() and copyW() by printf() and bring all owl in accordance with rules.

How can I make it convenient for a potential buyer to replace a safe but useless class with a real class that does useful work?

 
Alexsandr San:

Don't you have enough features, the terminal itself? What can a third-party programme do that the terminal can't ?????????????????????

many things :)

But in particular, MQL5 cannot create a .vbs file

 

Something tells me this wizard needs to be quarantined for a long time.

Расширение 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.

NOTE: Be careful .VBS files may be infected with malicious code or a Trojan. Use anti-virus to scan the .VBS files before opening, especially if you receive the file in the mail, or if its origin is unknown.

Source: http://fileext.ru/vbs

Why the hell try so hard to put this on the market???

 
Nikolai Karetnikov:

many things :)

But in particular, MQL5 cannot create a .vbs file

You can also create .bat and .cmd

 
Nikolai Karetnikov:

Good afternoon!

Rule #1 dll is not allowed on the Market. Ok, that's understandable )

Now the situation

I think there is a useful function that works well in Expert Advisor wrapper, but does not trade at all. It uses the onTimer method for operation. The DLL is used for the file renaming operation (well there is no possibility in MQL to create a file with vbs extension :) and start this visual basic script with shell command. Dangerous, I understand.

How can I provide functionality via Market with such inputs?

Can you decipher the underlined phrase? )) Wrappers for most Win API functions have been made for a long time. You may use them in the Market. I specifically asked Renat.

\MQL5\Include\WinAPI\...

 
Alexey Volchanskiy:

Can you decipher the underlined phrase? )) Wrappers for most Win API functions were made a long time ago. You can use them in the Market, I've asked Renat specifically.

\MQL5\Include\WinAPI\...

I don't believe it!

Alexei, is that you? Frankly speaking, I really miss you on this forum... Everyone's so dull and gloomy...

 
Alexey Volchanskiy:

Can you decipher the underlined phrase? )) Wrappers for most Win API functions were made a long time ago. You can use them in the Market, I've asked Renat specifically.

{\MQL5\Include\WinAPI\...

So, WinApi is pulling functions from Dll, while all the Dll calls are prohibited.
It's not clear here. And as far as I remember, the WinApi calls on the contrary are prohibited as well.