und wieder dll und Markt

 

Guten Tag!

Regel Nr. 1: Dll ist auf dem Markt nicht erlaubt. Okay, das ist verständlich.)

Jetzt die Situation

Ich denke, es ist eine nützliche Funktion, die gut funktioniert in Expert Advisor Wrapper, aber nicht den Handel überhaupt. Sie verwendet die Methode onTimer für den Betrieb. Die DLL wird für die Umbenennung von Dateien verwendet (in MQL gibt es keine Möglichkeit, eine Datei mit der Erweiterung vbs zu erstellen:) und dieses Visual Basic Script mit einem Shell-Befehl zu starten. Gefährlich, ich verstehe.

Wie kann man mit solchen Eingaben Funktionalität über Market bereitstellen?

 
Nikolai Karetnikov:

Guten Tag!

Regel Nr. 1: Dll ist auf dem Markt nicht erlaubt. Okay, das ist verständlich.)

Jetzt die Situation

Ich denke, es ist eine nützliche Funktion, die gut funktioniert in Expert Advisor Wrapper, aber es ist nicht vollständig nicht-Handel. Sie verwendet die Methode onTimer für den Betrieb. Die DLL wird für die Umbenennung von Dateien verwendet (in MQL gibt es keine Möglichkeit, eine Datei mit der Erweiterung vbs zu erstellen:) und dieses Visual Basic Script mit einem Shell-Befehl zu starten. Gefährlich, ich verstehe.

Wie kann ich die Funktionalität über Market mit diesen Eingaben bereitstellen?

irgendjemand?

Bisher habe ich die Idee, die Klasse, in der die DLL-Aufrufe ausgeführt werden, in eine separate Bibliothek zu verschieben und sie an die Beschreibung zu heften.

Übrigens, damit die Funktion funktioniert, benötige ich mehrere csv-Dateien, die sich im Verzeichnis mql5\files befinden sollten. Gibt es eine Möglichkeit, sie an die Beschreibung anzuhängen?

 
Nikolai Karetnikov:

irgendjemand?

Bisher habe ich die Idee, die Klasse, in der die DLL-Aufrufe erfolgen, in eine separate Bibliothek zu verschieben und sie per Verweis an die Beschreibung anzuhängen.

Übrigens, zur Arbeit

Warum?

Die wichtigste Regel des Marktes: Dll und andere verdächtige Aktivitäten sind verboten. Abhängigkeiten von externen Objekten (Indikatoren und Bibliotheken) sind untersagt.

Indem Sie die Aufrufe an eine Klasse oder Bibliothek entfernen, werden Sie die DLL keineswegs los.

PS/ Beim Verkauf einer so verdächtigen Sache (Bildung und Betrieb von VBS aus geschlossener Software) müssen Sie persönliche Verantwortung übernehmen, und niemand wird ein Zwischenhändler sein wollen.

 
Nikolai Karetnikov:

irgendjemand?

Bisher habe ich die Idee, die Klasse, in der die DLL-Aufrufe erfolgen, in eine separate Bibliothek zu packen und sie an die Beschreibung anzuhängen.

Ich benötige übrigens eine csv-Datei, die sich im Verzeichnis mql5\files befinden sollte. Ist es möglich, sie der Beschreibung als Anhang beizufügen?

Hat das Terminal selbst nicht schon genug Funktionen? Was kann ein Fremdprogramm, was das Terminal nicht kann ?????????????????????

 
Maxim Kuznetsov:

Warum?

Die Grundregel des Marktes lautet, dass DLLs und andere verdächtige Aktivitäten verboten sind. Abhängigkeiten von externen Objekten (Indikatoren und Bibliotheken) sind untersagt.

Indem Sie die Aufrufe zu einer Klasse oder Bibliothek nehmen, werden Sie die DLL keineswegs los.

PS/ Beim Verkauf einer so verdächtigen Sache (Bildung und Betrieb von VBS aus geschlossener Software) muss man persönliche Verantwortung übernehmen, und niemand wird ein Vermittler sein wollen.

Ich verstehe den eigentlichen Mechanismus einer solchen Aufteilung bisher nicht. Hier ist der Code der Klasse, in der auf die DLL zugegriffen wird

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



Im Expert Advisor selbst, der im Markt zu finden sein wird, gibt es 3-4 weitere Klassen, während die Dll nur in einer angesprochen wird. Angenommen, ich ändere die DLL-Klasse im Code des Experten, ersetze shellexecute() und copyW() durch printf() und bringe alle Eulen in Übereinstimmung mit den Regeln.

Wie kann ich es einem potenziellen Käufer leicht machen, eine sichere, aber nutzlose Klasse durch eine echte Klasse zu ersetzen, die nützliche Arbeit leistet?

 
Alexsandr San:

Hat das Terminal selbst nicht schon genug Funktionen? Was kann ein Fremdprogramm, was das Terminal nicht kann ?????????????????????

viele Dinge :)

Vor allem aber kann MQL5 keine .vbs-Datei erstellen

 

Irgendetwas sagt mir, dass dieser Zauberer für eine lange Zeit unter Quarantäne gestellt werden muss.

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

HINWEIS: Seien Sie vorsichtig: VBS-Dateien können mit bösartigem Code oder einem Trojaner infiziert sein. Verwenden Sie ein Antivirenprogramm, um die VBS-Dateien vor dem Öffnen zu überprüfen, insbesondere wenn Sie die Datei per Post erhalten oder ihre Herkunft unbekannt ist.

Quelle: http://fileext.ru/vbs

Warum zum Teufel sollte man sich so anstrengen, um es auf den Markt zu bringen?

 
Nikolai Karetnikov:

viele Dinge :)

Vor allem aber kann MQL5 keine .vbs-Datei erstellen

Sie können auch .bat und .cmd erstellen

 
Nikolai Karetnikov:

Guten Tag!

Regel Nr. 1: Dll ist auf dem Markt nicht erlaubt. Okay, das ist verständlich.)

Jetzt die Situation

Ich denke, es gibt eine nützliche Funktion, die gut funktioniert in Expert Advisor Wrapper, aber nicht den Handel überhaupt. Es verwendet die onTimer-Methode für den Betrieb. Die DLL wird für die Umbenennung von Dateien verwendet (in MQL gibt es keine Möglichkeit, eine Datei mit der Erweiterung vbs zu erstellen:) und dieses Visual Basic Script mit einem Shell-Befehl zu starten. Gefährlich, ich verstehe.

Wie kann ich mit solchen Eingaben Funktionalität über Market bereitstellen?

Können Sie den unterstrichenen Satz entziffern? )) Für die meisten Win-API-Funktionen gibt es schon seit langem Wrapper. Sie können sie auf dem Markt verwenden, ich habe Renat ausdrücklich darum gebeten.

\MQL5\Include\WinAPI\...

 
Alexey Volchanskiy:

Können Sie den unterstrichenen Satz entziffern? )) Wrapper für die meisten Win-API-Funktionen wurden schon vor langer Zeit erstellt. Sie können sie auf dem Markt verwenden, ich habe Renat ausdrücklich gefragt.

\MQL5\Include\WinAPI\...

Ich kann es nicht glauben!

Alexej, bist du das? Ehrlich gesagt, vermisse ich dich in diesem Forum... Ihr seid alle so stumpfsinnig und stirnrunzelnd...

 
Alexey Volchanskiy:

Können Sie den unterstrichenen Satz entziffern? )) Wrapper für die meisten Win-API-Funktionen wurden schon vor langer Zeit erstellt. Sie können sie auf dem Markt verwenden, ich habe Renat ausdrücklich gefragt.

{MQL5IncludeWinAPI...

WinApi zieht also Funktionen aus der Dll, während alle Dll-Aufrufe verboten sind.
Und soweit ich mich erinnere, sind die WinApi-Aufrufe im Gegenteil auch verboten.