Wie programmiert man? - Seite 205

 

Hilfe mit einfachen DLL-Aufruf?

so alles, was ich tun möchte, ist die MT4 Acc# von einer DLL zu erhalten.

Dll_call fragt Dll_call_include für die"GetAccountNumber()" double von Dll_call.dll

einfach richtig? die ea lädt gut auch mit der falschen Acc# in der dll. Mt4 fragt nach der Verwendung der Dll.

die 3 Dateien sind in den richtigen 3 Ordnern, die dll ist eine .dll Datei (als .txt angehängt um den Code zu sehen.

Könnte bitte jemand den Code auf Fehler überprüfen?

Danke

Dateien:
 

Haben Sie GetAccountNumber in eine .def-Datei in Ihrer kompilierten DLL aufgenommen? Dies ist erforderlich, damit es funktioniert.

Stellen Sie außerdem sicher, dass Dll-Importe zulassen für Ihren Experten ausgewählt ist.

Hoffentlich hilft das.

-wolfe

 

im ein bisschen neu zu C + +, so dass ich schätze, ill Studie def-Dateien. Ich las das Hinzufügen der def-Datei in den Ordner librarys, wo die DLL ist kann dies lösen, aber keine.

Ich habe auch gelesen, dass das Hinzufügen der DLL in den system32-Ordner das Problem löst, aber immer noch nicht.

Ich habe vor, dieses Projekt an Leute zu mailen, also möchte ich nicht sagen müssen, wie man 4 verschiedene Dateien in verschiedenen Ordnern platziert. ist das der einzige Weg?

Ist der Code in den 3 Dateien richtig?

Vielen Dank

 

Dies ist die Def-Datei. Sieht sie gut aus?

Muss sie zusammen mit der DLL in Bibliotheken abgelegt werden?

 
jimmynz:
Das ist die Def-Datei. Sieht sie gut aus? Muss sie mit der DLL in Bibliotheken abgelegt werden?

Die .def-Datei ist Teil Ihrer kompilierten C++-Lösung. Ich kopiere dann meine kompilierte C++-DLL in den system32-Ordner von Windows. Ich verwende ein 32-Bit-System mit Windows XP.

Ich bin auch kein Experte in C++, aber so habe ich es zum Laufen gebracht.

 

Danke für die Hilfe, aber immer noch nicht.

werid Sache ist ich versucht, eine EA mit dem üblichen Code zu überprüfen acc #:

int a = 907671;

int b = AccountNumber();

if (b != a) {

Alert("Checking Account No! (" + DoubleToStr(li_16, 0) + ") wrong Acc");

return (0)}

als EA lädt es unabhängig von der Nummer, aber wenn ich es als indi mache, funktioniert es gut?

ggrrr

 

...

Ihr EA wird immer geladen (wenn er nicht einen Codierungsfehler hat, der ihn am Kompilieren hindert).

Sie müssen nur entscheiden, an welcher Stelle er seine "übliche Arbeit" einstellen und verhindern soll, dass er sie für einen Unbefugten ausführt. Normalerweise setzen Sie diese Prüfroutine an den Anfang von start() - etwa so:

//+------------------------------------------------------------------+

//| Dll_call.mq4 |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

static bool alerted = false;

int a = 907671;

int b = AccountNumber();

if (b != a)

{

if (!alerted)

{

Comment("Checking Account No! (" + DoubleToStr(b, 0) + ") wrong Acc");

alerted = true;

}

return (0);

}

//

//

// the part that is not executed when account number is wrong

//

//

alerted = false;

Comment("continuing the rest of the job");

return(0);

}

Aber auch diese Art der Überprüfung kann von einem Decompiler in wenigen Minuten gehackt werden.

PS: Ich habe Alert() in Comment() umgewandelt, damit man es im visuellen Backtest überprüfen kann.

jimmynz:
Danke für die Hilfe, aber immer noch nicht.

Das Seltsame ist, dass ich versucht habe, einen EA mit dem üblichen Code zu erstellen, um acc # zu überprüfen:

int a = 907671;

int b = AccountNumber();

if (b != a) {

Alert("Checking Account No! (" + DoubleToStr(li_16, 0) + ") wrong Acc");

return (0)}

als EA lädt es unabhängig von der Nummer, aber wenn ich es als indi mache, funktioniert es gut?

ggrrr
 
 
luxinterior:
Dein toller Plan ist es also, zwei kostenlose EAs zu nehmen, die du wahrscheinlich hier gefunden hast, sie zu "verschmelzen" und sie für 2.000 pro Stück zu verkaufen? Du hast echt Nerven, Kumpel! Wenn du wirklich Glück hast, bietet dir vielleicht einer der beiden Jungs, die ihre Zeit, Mühe und ihr Wissen kostenlos zur Verfügung gestellt haben, an, es für dich zu tun.

Oh, aber warte! Wenn der Code "verpfuscht" ist, dann sind die EAs höchstwahrscheinlich kommerzielle EAs, die dekompiliert wurden. Ist es das? Schwachkopf!!!

Lux

Oh, nette Rede. Lass mich dir folgendes sagen:

Egal, welchen EA du dir ansiehst, höchstwahrscheinlich wird es jemanden geben, der die gleiche Idee hat und den EA bereits gemacht hat. Kostenlose EA's? Wollt ihr mich verarschen? Welcher EA in diesem Forum hatte dieses Potenzial?

Außerdem gibt es viele Leute, die sich als Entwickler bezeichnen, die auch von anderen kopieren und für 3000 Dollar Club-Abonnements verkaufen. Und das Schlimmste, mit EA's, die Ihre Konten platt machen. .... NULL

Außerdem hatte ich nie irgendwelche EA's von hier genommen. Welche EA ist für den Zusammenschluss auf diesem Forum wert? Auch, wenn der Code durcheinander ist, könnte es sein, dass ich Programmierer bitten, einen EA zu programmieren. Dann, wenn mehr Funktionen benötigt werden, bitte ich verschiedene Programmierer ... ZU HILFEN!

Unterschiedliche Kodierungsstile könnten im Laufe der Zeit die Codes durcheinander bringen.

Außerdem habe ich keinen kommerziellen EA dekompiliert. Der Grund, warum Sie sagen, dass ich es tue, ist die Tatsache, dass Sie es selbst tun. Ich weiß nicht, welche Art von Chaos ein Decompiler verursachen wird. Aber wenn du dir so sicher bist, dass ein Decompiler ein Chaos verursachen könnte, dann hast du ihn wahrscheinlich schon benutzt. Ansonsten würden Sie es nie erfahren.

Ein Ratschlag: Bevor Sie andere als Idioten bezeichnen oder versuchen, sich wie ein Polizist/Held zu verhalten, der den Tag rettet, sollten Sie sich zuerst selbst beurteilen. Wenn nicht, könnten diese Worte aus deinem Mund dich dazu zwingen, sie wieder herunterzuschlucken.

Ich danke dir.

 

Hilfe zu iMAOnArray()

Hallo!

ich bin neu bei MT4... Ich habe verzweifelt versucht, den folgenden Code in einen Experten einzubinden, aber es ist mir nicht gelungen, dies zu tun

" iMAOnArray(ind_buffer1,Bars,SignalEMA,0,MODE_EMA,i); "

Ja, ich weiß, dass die oben genannten nicht direkt in einem EA verwendet werden kann, aber ist es möglich, die gleichen Ergebnisse durch Umkodierung der oben genannten MA zu erreichen? wenn ja, würde ich wirklich zu schätzen wissen einige Hilfe auf, dass.

Mit freundlichen Grüßen.

Grund der Beschwerde: