MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 49

 
Interesting:
Und wie kann man ohne Code helfen?

Der Code ist 200 Zeilen lang und überhaupt unkommentiert (ich habe die Funktion und ihren Verweis auf OOP-Rails übersetzt).

Ich dachte, dass jemand auf ähnliche Probleme gestoßen ist (ich selbst vermute Konstruktoren und Destruktoren, ich habe sie sowohl in der Basisklasse als auch in den Nachfolgeklassen standardmäßig (überhaupt nicht angegeben))

Ich werde den Code posten, wenn ich ihn brauche, ich werde ihn sowieso für mich kommentieren,

Aber ich werde es morgen posten, ich gehe jetzt schlafen.

 

Wenn ShellExecuteA von shell32.dll aufgerufen wird , erscheint diese Meldung:

Könnten Sie bitte "shell32.dll :: ShellExecuteA, DLL not allowed
Access violation write 0x00000000" aufrufen?

Ich nenne es so:

#import "shell32.dll"
int ShellExecuteA(int a0,string a1,string a2,string a3,string a4,int a5);
#import

PS. ich habe vergessen, die Berechtigung zum Aufrufen von DLLs zu aktivieren, aber wenn Sie die Berechtigung zum Aufrufen von DLLs aktivieren, stürzt das Terminal ab, wenn Sie den Tester ausführen

 
VOLDEMAR:

Oppa, eine Stimme aus der Vergangenheit .... Sie haben nicht zufällig den ersten Build, oder?

Bild 541 natürlich.
 
Barbarian:

Wenn ShellExecuteA von shell32.dll aufgerufen wird , erscheint diese Meldung:

Könnten Sie bitte "shell32.dll :: ShellExecuteA, DLL not allowed
Access violation write 0x00000000" aufrufen?

Ich nenne es so:

#import "shell32.dll"
int ShellExecuteA(int a0,string a1,string a2,string a3,string a4,int a5);
#import

PS. vergessen, die Berechtigung zum Aufrufen der DLL einzuschalten, aber wenn Sie die Berechtigung für die DLL dann einschalten, wenn Sie den Tester ausführen, stürzt das Terminal ab


Die Zeichenketten sind jetzt Unicode.

Sie müssen die Unicode-Version der Funktion verwenden

#import "shell32.dll"
int ShellExecuteW(int a0,string a1,string a2,string a3,string a4,int a5);
#import

 
ALXIMIKS:

Der Code ist 200 Zeilen lang und überhaupt unkommentiert (ich habe die Funktion und ihren Verweis auf OOP-Rails übersetzt).

Ich dachte, dass jemand auf ähnliche Probleme gestoßen ist (ich selbst vermute Konstruktoren und Destruktoren, ich habe sie sowohl in der Basisklasse als auch in den Nachfolgeklassen standardmäßig (überhaupt nicht angegeben))

Ich werde den Code posten, wenn ich ihn brauche, ich werde ihn sowieso für mich kommentieren,

Aber ich werde es morgen posten, ich schlafe heute Nacht.


Wenn es kein Geheimnis gibt, posten Sie den Code und die Schritte zur Reproduktion oder zum Servicedesk. Danke

 
stringo:

Die Zeichenketten sind Unicode.

Sie müssen die Unicode-Version der Funktion verwenden

Ja, es ist nicht so einfach, es sieht so aus, als müssten Sie noch L vor die String-Literale schreiben.
 
digits:

helfen Sie mir verstehen, warum dieser Code auf 509 kompiliert funktioniert, wenn von einem EA aufgerufen

in EA wird der Code wie folgt aufgerufen und behandelt:

aber wenn der Code in ME ab Build 540 kompiliert wird, dann schreibt EA Log-Datei:

Und EA funktioniert nicht richtig oder gar nicht.


Haben Sie es mit Build 541 versucht?

Ich habe versucht, die Daten auf der Grundlage Ihrer Quellen zu reproduzieren - bisher ohne Erfolg. Können Sie alle Quellen und Details (Betriebssystem, Symbol, Broker, Installationsordner, Berechtigungen usw.) auf dem Servicedesk veröffentlichen?

 
ALXIMIKS:

Können Sie mir die mögliche Ursache für den Absturz nennen?)

Ich habe die Hauptberechnungsfunktion im Indikator mit Hilfe von OOP erstellt (ich habe sie jetzt ein paar Tage lang studiert).

Alles funktioniert gut (bei 3000 bar hat sich die Berechnungsgeschwindigkeit um das 2-3fache erhöht).

Aber wenn ich versuche, 2 Indikatoren auszuführen , stürzt es ab und alles stürzt ab ......


Am besten, Sie gehen direkt zu servicedesk mit allen Quellen und einer Beschreibung.
 
void OnStart()
{
//---
//+------------------------------------------------------------------+
//| Das Skript zeigt Informationen über das Werkzeug an.
//+------------------------------------------------------------------+
Print("Symbol=",Symbol());
Print("Point size in the quote currency=",MarketInfo(Symbol(),MODE_POINT));
Print("Minimum step of security price change in points=",MarketInfo(Symbol(),MODE_TICKSIZE));
}

LOG:

2013.11.15 12:43:11.716 ttt EURUSD,M1: entfernt

2013.11.15 12:43:11.716 ttt EURUSD,M1: Mindestschritt der Wertpapierkursänderung in Punkten=1e-005. 0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Pip-Größe in der Kurswährung=1e-005. 0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Symbol=EURUSD

2013.11.15 12:43:11.707 ttt EURUSD,M1: erfolgreich geladen


 
HIDDEN:
void OnStart()
{
//---
//+------------------------------------------------------------------+
//| Das Skript zeigt Informationen über das Werkzeug an.
//+------------------------------------------------------------------+
Print("Symbol=",Symbol());
Print("Point size in the quote currency=",MarketInfo(Symbol(),MODE_POINT));
Print("Minimum step of security price change in points=",MarketInfo(Symbol(),MODE_TICKSIZE));
}

LOG:

2013.11.15 12:43:11.716 ttt EURUSD,M1: entfernt

2013.11.15 12:43:11.716 ttt EURUSD,M1: Mindestschritt der Wertpapierkursänderung in Punkten=1e-005. 0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Pip-Größe in der Kurswährung=1e-005. 0

2013.11.15 12:43:11.716 ttt EURUSD,M1: Symbol=EURUSD

2013.11.15 12:43:11.707 ttt EURUSD,M1: erfolgreich geladen


Verwirrt durch das wissenschaftliche Format der Datenausgabe?

1e-005.0 = 0.00001. Immerhin fünfstellig.
Um in Dezimalpunktdarstellung zu drucken, verwenden Sie DoubleToStr in Print oder gehen Sie zur neuen Version von Print: PrintFormat.

Grund der Beschwerde: