и снова dll и маркет

 

День добрый!

Правило №1 dll на Маркете запрещен. Хорошо, это понятно )

Теперь ситуация

Есть полезный, как мне кажется, функционал, который отлично работает в обертке эксперта, но не совсем не торгует. Использует метод onTimer для работы. DLL используется для операции переименования файла (ну нет в MQL) возможности создать файл с расширением vbs :) и запуска этого visual basic скрипта командой shell. Опасно, понимаю. 

Как при таких вводных предоставить функционал через Маркет? 

 
Nikolai Karetnikov:

День добрый!

Правило №1 dll на Маркете запрещен. Хорошо, это понятно )

Теперь ситуация

Есть полезный, как мне кажется, функционал, который отлично работает в обертке эксперта, но не совсем не торгует. Использует метод onTimer для работы. DLL используется для операции переименования файла (ну нет в MQL) возможности создать файл с расширением vbs :) и запуска этого visual basic скрипта командой shell. Опасно, понимаю. 

Как при таких вводных предоставить функционал через Маркет? 

кто-нибудь? 

Пока у меня мысли вынести класс в котором выполняются dll вызовы в отдельную библиотеку и прицепить к описанию.

Кстати, для работы функционала нужен еще csv файл, который должен лежать в директории mql5\files. Его как-то можно вложением прикрепить к описанию?

 
Nikolai Karetnikov:

кто-нибудь? 

Пока у меня мысли вынести класс в котором выполняются dll вызовы в отдельную библиотеку и прицепить к описанию ссылкой.

Кстати, для работы 

а зачем ? 

основное правило маркета - dll и прочая подозрительная активность запрещены. Зависимости от любых внешних объектов (индикаторов и библиотек) запрещены.

Унеся вызовы в класс или библиотеку вы никоим образом не избавитесь от DLL. 

PS/ продавая столь подозрительную штуку (формирование и запуск VBS от закрытого софта), вы должны брать личную ответственность и никто не захочет быть посредником.

 
Nikolai Karetnikov:

кто-нибудь? 

Пока у меня мысли вынести класс в котором выполняются dll вызовы в отдельную библиотеку и прицепить к описанию.

Кстати, для работы функционала нужен еще csv файл, который должен лежать в директории mql5\files. Его как-то можно вложением прикрепить к описанию?

Неужели не хватает Вам функции, самого терминала? что может сторонняя программа - чего не может терминал ?????????????????????   

 
Maxim Kuznetsov:

а зачем ? 

основное правило маркета - dll и прочая подозрительная активность запрещены. Зависимости от любых внешних объектов (индикаторов и библиотек) запрещены.

Унеся вызовы в класс или библиотеку вы никоим образом не избавитесь от DLL. 

PS/ продавая столь подозрительную штуку (формирование и запуск VBS от закрытого софта), вы должны брать личную ответственность и никто не захочет быть посредником.

мне пока сам механизм такого разделения не понятен. Скажем, вот код класса, в котором происходит обращение к 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);
      
     }
  };


 


В самом эксперте, что будет лежать в Маркете, еще 3-4 класса, к dll обращение идет лишь в одном. Допустим, модифицирую DLL класс в коде эксперта, заменю shellexecute() и copyW() на printf() и приведу всю сову в соответствие с правилами. 

Как мне сделать так, чтобы потенциальному покупателю было удобно подменить безопасный, но бесполезный класс, реальным классом, выполняющим полезную работу?

 
Alexsandr San:

Неужели не хватает Вам функции, самого терминала? что может сторонняя программа - чего не может терминал ?????????????????????   

много чего :) 

Но в частности, MQL5 не может создать файл .vbs

 

Что-то мне кажется этот мастер просится в длительный карантин.

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

ПРИМЕЧАНИЕ: Будьте осторожны .VBS файлы могут быть инфицированы зловредным кодом или трояном. Используйте антивирус для проверки файлов .VBS перед открытием, особенно если вы получили данный файл по почте или происхождение не известно.

источник: http://fileext.ru/vbs

Какого чёрта так стараться засунуть это в маркет???

 
Nikolai Karetnikov:

много чего :) 

Но в частности, MQL5 не может создать файл .vbs

может ещё Вам  и .bat  и .cmd

 
Nikolai Karetnikov:

День добрый!

Правило №1 dll на Маркете запрещен. Хорошо, это понятно )

Теперь ситуация

Есть полезный, как мне кажется, функционал, который отлично работает в обертке эксперта, но не совсем не торгует. Использует метод onTimer для работы. DLL используется для операции переименования файла (ну нет в MQL) возможности создать файл с расширением vbs :) и запуска этого visual basic скрипта командой shell. Опасно, понимаю. 

Как при таких вводных предоставить функционал через Маркет? 

Подчеркнутую фразу можете расшифровать? )) Сделаны давно обертки по большинство Win API функций. Их можно использовать в Маркете, спецом у Рената спрашивал.

\MQL5\Include\WinAPI\..

 
Alexey Volchanskiy:

Подчеркнутую фразу можете расшифровать? )) Сделаны давно обертки по большинство Win API функций. Их можно использовать в Маркете, спецом у Рената спрашивал.

\MQL5\Include\WinAPI\..

Глазам своим не верю ! 

Алексей, вы ли это ? Вас честно говоря очень нехватает на форуме... А то все вялые да хмурые..

 
Alexey Volchanskiy:

Подчеркнутую фразу можете расшифровать? )) Сделаны давно обертки по большинство Win API функций. Их можно использовать в Маркете, спецом у Рената спрашивал.

\MQL5\Include\WinAPI\..

Так WinApi из Dll же тянет функции, а все Dll вызовы запрещены.
Какая то не ясность получается, и насколько помню писали, что наоборот WinApi вызовы тоже запрещены.

Причина обращения: