y de nuevo dll y el mercado

 

¡Buenas tardes!

Regla #1 no se permite el dll en el Mercado. Ok, eso es comprensible )

Ahora la situación

Creo que hay una función útil que funciona bien en la envoltura del Asesor Experto, pero no comercia en absoluto. Utiliza el método onTimer para su funcionamiento. La DLL se utiliza para la operación de renombrado de archivos (bueno no hay posibilidad en MQL de crear un archivo con extensión vbs :) e iniciar este script de visual basic con el comando shell. Peligroso, lo entiendo.

¿Cómo proporcionar funcionalidad a través de Market con tales entradas?

 
Nikolai Karetnikov:

¡Buenas tardes!

Regla #1 no se permite el dll en el Mercado. Ok, eso es comprensible )

Ahora la situación

Creo que hay una función útil que funciona bien en la envoltura del Asesor Experto, pero no es completamente no comercial. Utiliza el método onTimer para su funcionamiento. La DLL se utiliza para la operación de renombrado de archivos (bueno no hay posibilidad en MQL de crear un archivo con extensión vbs :) e iniciar este script de visual basic con el comando shell. Peligroso, lo entiendo.

¿Cómo proporciono funcionalidad a través de Market con estas entradas?

¿alguien?

De momento tengo la idea de mover la clase en la que se ejecutan las llamadas al dll a una librería aparte y fijarla a la descripción.

Por cierto, para que la funcionalidad funcione necesito más archivo csv que debe estar en el directorio mql5\files. ¿Hay alguna forma de adjuntarlo a la descripción?

 
Nikolai Karetnikov:

¿alguien?

De momento tengo la idea de mover la clase en la que se hacen las llamadas al dll a una librería aparte y adjuntarla a la descripción por referencia.

Por cierto, para trabajar

¿Por qué?

Regla principal del mercado: se prohíbe el dll y otras actividades sospechosas. Las dependencias de cualquier objeto externo (indicadores y bibliotecas) están prohibidas.

Quitando las llamadas a una clase o biblioteca no te librarás de ninguna manera de la DLL.

PS/ vendiendo una cosa tan sospechosa (formando y ejecutando VBS a partir de un software cerrado), hay que asumir la responsabilidad personal y nadie querrá ser un intermediario.

 
Nikolai Karetnikov:

¿alguien?

De momento tengo la idea de poner la clase en la que se hacen las llamadas al dll en una librería aparte y adjuntarla a la descripción.

Por cierto, necesito el archivo csv que debe estar ubicado en el directorio mql5\files. ¿Es posible adjuntarlo a la descripción como un anexo?

¿No tiene suficientes funciones el propio terminal? ¿Qué puede hacer un programa de terceros que no pueda hacer el terminal? ?????????????????????

 
Maxim Kuznetsov:

¿Por qué?

La regla básica del mercado es que los dlls y otras actividades sospechosas están prohibidas. Las dependencias de cualquier objeto externo (indicadores y bibliotecas) están prohibidas.

Llevando las llamadas a una clase o biblioteca no te librarás de ninguna manera de la DLL.

PD/ vendiendo una cosa tan sospechosa (formando y ejecutando VBS desde un software cerrado) hay que asumir la responsabilidad personal y nadie querrá ser intermediario.

No entiendo el mecanismo mismo de tal división hasta ahora. Digamos que este es el código de la clase en la que se accede a 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);
      
     }
  };



En el propio Asesor Experto, que se encontrará en el Mercado, hay 3-4 clases más, mientras que el dll se aborda en una sola. Supongamos que modifico la clase DLL en el código del experto, reemplazo shellexecute() y copyW() por printf() y pongo todo el búho de acuerdo con las reglas.

¿Cómo hago para que un comprador potencial pueda sustituir una clase segura pero inútil por una clase real que haga un trabajo útil?

 
Alexsandr San:

¿No tiene suficientes funciones el propio terminal? ¿Qué puede hacer un programa de terceros que no pueda hacer el terminal? ?????????????????????

muchas cosas :)

Pero en particular, MQL5 no puede crear un archivo .vbs

 

Algo me dice que este mago necesita estar en cuarentena durante mucho tiempo.

Расширение 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: Tenga cuidado los archivos .VBS pueden estar infectados con código malicioso o un troyano. Utilice un antivirus para escanear los archivos .VBS antes de abrirlos, especialmente si recibe el archivo por correo, o si se desconoce su origen.

Fuente: http://fileext.ru/vbs

¿Por qué demonios se esfuerza tanto en poner esto en el mercado?

 
Nikolai Karetnikov:

muchas cosas :)

Pero en particular, MQL5 no puede crear un archivo .vbs

También puedes crear archivos .bat y .cmd

 
Nikolai Karetnikov:

¡Buenas tardes!

Regla #1 no se permite el dll en el Mercado. Ok, eso es comprensible )

Ahora la situación

Creo que hay una función útil que funciona bien en la envoltura del Asesor Experto, pero no comercia en absoluto. Utiliza el método onTimer para el funcionamiento. La DLL se utiliza para la operación de renombrado de archivos (bueno no hay posibilidad en MQL de crear un archivo con extensión vbs :) e iniciar este script de visual basic con el comando shell. Peligroso, lo entiendo.

¿Cómo puedo proporcionar funcionalidad a través de Market con tales entradas?

¿Puedes descifrar la frase subrayada? )) Desde hace mucho tiempo se han creado envoltorios para la mayoría de las funciones de la API de Win. Puedes usarlos en el mercado. Se lo pedí específicamente a Renat.

\MQL5IncludeWinAPI...

 
Alexey Volchanskiy:

¿Puedes descifrar la frase subrayada? )) Las envolturas para la mayoría de las funciones de la API de Win se hicieron hace mucho tiempo. Puedes usarlos en el Mercado, se lo he pedido a Renat específicamente.

\MQL5IncludeWinAPI...

¡No lo puedo creer!

Alexei, ¿eres tú? Francamente, te echo de menos en este foro... Sois todos tan aburridos y ceñudos...

 
Alexey Volchanskiy:

¿Puedes descifrar la frase subrayada? )) Las envolturas para la mayoría de las funciones de la API de Win se hicieron hace mucho tiempo. Puedes usarlos en el Mercado, se lo he pedido a Renat específicamente.

{\MQL5\Include\WinAPI\N-...

Así, WinApi está sacando funciones de Dll, mientras que todas las llamadas a Dll están prohibidas.
No está claro aquí. Y que yo recuerde, lo contrario de las llamadas WinApi también está prohibido.

Razón de la queja: