e novamente dll e mercado

 

Boa tarde!

A regra nº 1 dll não é permitida no mercado. Ok, isso é compreensível )

Agora a situação

Acho que há uma função útil que funciona bem em embalagens de Expert Advisor, mas que não comercializa em absoluto. Utiliza o método onTimer para operação. A DLL é utilizada para a operação de renomeamento do arquivo (bem, não há possibilidade na MQL de criar um arquivo com extensão vbs :) e iniciar este script visual básico com o comando shell. Perigoso, eu entendo.

Como fornecer funcionalidade através do Mercado com tais insumos?

 
Nikolai Karetnikov:

Boa tarde!

A regra nº 1 dll não é permitida no mercado. Ok, isso é compreensível )

Agora a situação

Acho que há uma função útil que funciona bem na embalagem do Expert Advisor, mas não é completamente não comercializável. Utiliza o método onTimer para operação. A DLL é utilizada para a operação de renomeamento do arquivo (bem, não há possibilidade na MQL de criar um arquivo com extensão vbs :) e iniciar este script visual básico com o comando shell. Perigoso, eu entendo.

Como posso fornecer a funcionalidade via Mercado com estes insumos?

alguém?

Até agora tenho a idéia de mover a classe na qual as chamadas dll são executadas para uma biblioteca separada e piná-la para a descrição.

A propósito, para que a funcionalidade funcione, preciso de mais arquivo csv, que deve estar no diretório de arquivos mql5. Há alguma forma de anexá-lo à descrição?

 
Nikolai Karetnikov:

alguém?

Até agora, tenho a idéia de mover a classe na qual as chamadas dll são feitas para uma biblioteca separada e anexá-la à descrição por referência.

A propósito, para trabalhar

por que ?

A principal regra do mercado - dll e outras atividades suspeitas é proibida. As dependências de quaisquer objetos externos (indicadores e bibliotecas) são proibidas.

Ao levar as ligações para uma classe ou biblioteca você não se livrará de forma alguma da DLL.

PS/ vendendo uma coisa tão suspeita (formando e executando VBS a partir de software fechado), você deve assumir responsabilidade pessoal e ninguém vai querer ser um intermediário.

 
Nikolai Karetnikov:

alguém?

Até agora tenho uma idéia de colocar a classe na qual as chamadas dll são feitas em uma biblioteca separada e anexá-la à descrição.

A propósito, preciso do arquivo csv que deve estar localizado no diretório mql5\files. É possível anexá-lo à descrição como um anexo?

Você não tem funções suficientes, o próprio terminal? O que um programa de terceiros pode fazer que o terminal não possa fazer ?????????????????????

 
Maxim Kuznetsov:

por que ?

A regra básica do mercado é que as dlls e outras atividades suspeitas são proibidas. As dependências de quaisquer objetos externos (indicadores e bibliotecas) são proibidas.

Ao levar as chamadas para uma classe ou biblioteca você não se livrará de forma alguma da DLL.

PS/ vender uma coisa tão suspeita (formar e executar VBS a partir de software fechado) você tem que assumir responsabilidade pessoal e ninguém vai querer ser um intermediário.

Eu não entendo o próprio mecanismo de tal divisão até agora. Digamos que aqui está o código da classe em que a dll é acessada

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



No próprio Expert Advisor, que estará localizado no Mercado, há mais 3-4 classes, enquanto a dll é endereçada em apenas uma. Suponha que eu modifique a classe DLL no código do especialista, substitua shellexecute() e copyW() por printf() e traga todas as corujas de acordo com as regras.

Como faço para que seja conveniente para um comprador potencial substituir uma classe segura, mas inútil, por uma classe real que funcione de forma útil?

 
Alexsandr San:

Você não tem funções suficientes, o próprio terminal? O que um programa de terceiros pode fazer que o terminal não possa ?????????????????????

muitas coisas :)

Mas em particular, a MQL5 não pode criar um arquivo .vbs

 

Algo me diz que este feiticeiro precisa ser colocado em quarentena por um longo tempo.

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

NOTA: Os arquivos .VBS podem estar infectados com código malicioso ou um trojan. Use anti-vírus para verificar os arquivos .VBS antes de abrir, especialmente se você receber o arquivo pelo correio, ou se sua origem for desconhecida.

Fonte: http://fileext.ru/vbs

Por que diabos se esforçar tanto para colocar isto no mercado?

 
Nikolai Karetnikov:

muitas coisas :)

Mas em particular, a MQL5 não pode criar um arquivo .vbs

Você também pode criar .bat e .cmd

 
Nikolai Karetnikov:

Boa tarde!

A regra nº 1 dll não é permitida no mercado. Ok, isso é compreensível )

Agora a situação

Acho que existe uma função útil que funciona bem em embalagens de Expert Advisor, mas que não é de todo comercializada. Ela usa o método onTimer para operação. A DLL é utilizada para a operação de renomeamento do arquivo (bem, não há possibilidade na MQL de criar um arquivo com extensão vbs :) e iniciar este script visual básico com o comando shell. Perigoso, eu entendo.

Como posso fornecer funcionalidade através do Mercado com tais insumos?

Você consegue decifrar a frase sublinhada? )) Há muito tempo são feitas embalagens para a maioria das funções Win API. Você pode usá-los no Mercado. Eu perguntei especificamente à Renat.

\MQL5IncluaWinAPI...

 
Alexey Volchanskiy:

Você consegue decifrar a frase sublinhada? )) Os empacotadores para a maioria das funções Win API foram feitos há muito tempo. Você pode usá-los no Mercado, eu perguntei especificamente à Renat.

\MQL5IncluaWinAPI...

Eu não acredito nisso!

Alexei, é você? Francamente falando, eu realmente sinto sua falta neste fórum... Vocês são todos tão monótonos e carrancudos...

 
Alexey Volchanskiy:

Você consegue decifrar a frase sublinhada? )) Os empacotadores para a maioria das funções Win API foram feitos há muito tempo. Você pode usá-los no Mercado, eu perguntei especificamente à Renat.

{MQL5IncluaWinAPI...

Portanto, WinApi está retirando funções do Dll, enquanto todas as chamadas do Dll são proibidas.
Não está claro aqui. Lembro que as chamadas da WinApi, ao contrário, também são proibidas.

Razão: