Bibliotheken: Abbildungsdateien ohne DLL - Seite 4

 
sergeev:
behandeln sie als eine lange Variable von sizeof(<Type>)*<Number_Elements> und alles wird funktionieren :)
Also wird diese Klasse benötigt, um nur einen Zeiger zu übertragen? Ich dachte, es wäre möglich, Arrays auf einmal zu verwenden :(
 
baramantan:
Diese Klasse wird also nur benötigt, um einen Zeiger zu übertragen? Ich dachte, es wäre möglich, Arrays auf einmal zu verwenden :(
hast du überhaupt realisiert, was du da verlangst? :)
 
sergeev:
behandeln Sie sie als lange Variablen der Größe sizeof(<Type>)*<Number_Elements> und alles wird funktionieren :)

void OnStart()
{
CMemMapFile hmem;
int err=hmem.Open("Local\\\\test",111,modeCreate);

int data[];
ArrayResize(data,50);

err=hmem.Write(data,ArraySize(data)*sizeof(int));

ArrayInitialize(data,0);
hmem.Seek(0,SEEK_SET);
err=hmem.Read(data, ArraySize(data)*sizeof(int) );


hmem.Close();
}

Habe ich es richtig gemacht? Wenn nicht, was ist falsch?

 

baramantan:

Habe ich es richtig gemacht?
Fragen Sie Debug, er weiß es zu 100%.
 
sergeev:
Fragen Sie debag, er weiß es zu 100%.

Und warum müssen Sie auf meinen Beitrag mit dem Verschieben von Pfeilen antworten?

Können Sie anhand eines Beispiels zeigen, wie man ein Array int oder double übergibt?

 

Wie wollen Sie das überprüfen, wenn Sie nicht einmal einen Debugger haben? Sind Sie es gewohnt, in der Schule Informatik an einer Tafel ohne Computer zu lernen?

Wenn Sie Details und Beispiele wollen, lesen Sie MSDN.


Im Allgemeinen können die Leute unverschämt sein. Sie haben schon alles auf MQL übertragen und alles mit Kommentaren vollgekaut,
damit sie auch noch Funktionen für ihre Sliwatoren schreiben :) es stellt sich als seltsam heraus.

;)

 
sergeev:

Wie wollen Sie das überprüfen, wenn Sie nicht einmal einen Debugger haben? Sind Sie es gewohnt, in der Schule Informatik an einer Tafel ohne Computer zu lernen?

Wenn Sie Details und Beispiele wollen, lesen Sie MSDN.


Im Allgemeinen können die Leute unverschämt sein. Sie haben schon alles auf MQL übertragen und alles mit Kommentaren vollgekaut,
damit sie auch noch Funktionen für ihre Sliwatoren schreiben :) es stellt sich als seltsam heraus.

;)

Jetzt verstehe ich nicht, warum ihr euch in meine Beiträge mit meinen Fragen einmischt - wenn ihr sie nicht inhaltlich beantworten wollt? Ich bin schockiert, Redaktion!
 

Nun, ich werde meine eigenen Fragen beantworten. Ich musste dieses halbfertige, unausgegorene Produkt abholen.

Diese Klasse kann nicht mit int- und double-Arrays umgehen, und zwar aus einem sehr einfachen Grund.

Die deklarierte Funktion kann keine Arrays vom Typ int oder double akzeptieren. Die Klasse kann nur mit uchar " virtual int Write(const uchar &buf[],int sz); // write the specified number of bytes into memory "

Ich habe das Rezept gefälscht, um es für meine Bedürfnisse zu finalisieren, ich poste, was ich bekommen habe, man kann nur int-Arrays übergeben. Wenn der Autor seine Kreation nicht finalisiert, werde ich meine eigene später posten.

Dateien:
MemMapLib.mqh  17 kb
MemMap.mq5  2 kb
 
baramantan:

Ich werde meine eigenen Fragen beantworten. Ich musste etwas graben

also habe ich mein Ziel erreicht :)

Diese Klasse kann aus einem sehr einfachen Grund keine int und double Arrays akzeptieren.
Die deklarierte Funktion kann keine Arrays vom Typ int oder double akzeptieren.

Nun, das ist eine offensichtliche Wahrheit. Sie akzeptiert uchar, nicht <irgendeinen_benötigten_Typ>.

Genauso kann man von diesem, wie Sie es ausdrücken, "halbfertigen Produkt" verlangen, ein Array von Strukturen mit Strings zu speichern. Mit dem Fuß aufstampfen - warum hat der Autor das "Datenformat, das ich brauche" nicht vorausgesehen.

Aber Sie wurden eine universelle Funktion gegeben. weniger als ein Byte gibt es nirgends zu teilen. Deshalb wird es ja auch gespeichert.

Da jeder Datentyp in ein uchar-Array übersetzt werden kann (Bytes lesen), ist es das universellste für eine solche Klasse.

Ich habe das Rezept zusammengeschustert, um es an meine Bedürfnisse anzupassen, ich poste, was ich habe, man kann nur int-Arrays übergeben.

Es war mit uchar, jetzt ist es mit int.

ja. Fortschritt :)
 
sergeev:

also habe ich mein Ziel erreicht :)

Nun, es ist eine offensichtliche Wahrheit. Es akzeptiert uchar, nicht <irgendeinen_notwendigen_Typ>.

Genauso kann man von diesem, wie du es nennst, "halbfertigen Produkt" verlangen, ein Array von Strukturen mit Strings zu speichern. Mit dem Fuß aufstampfen - warum hat der Autor das "Datenformat, das ich brauche" nicht vorausgesehen.

Aber Sie wurden eine universelle Funktion gegeben. weniger als ein Byte gibt es nirgends zu teilen. Deshalb wird es ja auch gespeichert.

Da jeder Datentyp in uchar-Array übersetzt werden kann (Bytes lesen), ist es die universellste für eine solche Klasse.

Es war uchar, jetzt ist es int.

Ja. Fortschritt :))

Ich bin natürlich kein Megaprogrammierer. Aber ich verstehe nicht, wo die Universalität ist? uchar kann nicht universell sein, weil es den Benutzer einschränkt, nämlich: uchar ist nur für positive Werte. Der Minimalwert ist Null, der Maximalwert ist 255.

Alle Daten, die über den Wert von uchar hinausgehen, sind gleich dem maximalen oder minimalen Wert von uchar.

Ausgehend von dem, was ich gesagt habe, habe ich von Anfang an gefragt, "wie man int oder double übergibt". Ich verstehe nicht, worauf Sie hinauswollen, Chef.