Créez votre propre extension MetaTrader (dll) - page 4

 

Voici l'EXCEPTION :

Il y a eu une erreur critique

Heure : 2009.03.05 14:32

Programme : Client Terminal

Version : 4.00 (build : 220, 7 Nov 2008)

Système d'exploitation : Windows Vista Professional 6.0 Service Pack 1 (Build 6001)

Processeurs : 2 x X86 (niveau 15)

Mémoire : 4194303/4194303 kb

Exception : C0000005

Adresse : 8B222B17

Type d'accès : lecture

Adr d'accès : 8B222B17

Registres : EAX=00000000 CS=0023 EIP=8B222B17 EFLGS=00010246

: EBX=0045FE84 SS=002b ESP=061BFEF8 EBP=061BFF30

: ECX=00000000 DS=002b ESI=05703E68 FS=0053

: EDX=000000FF ES=002b EDI=05703E70 GS=002b

Trace de pile : 004552FD 76672DEB 7613E3F3 779BCFED

: 779BD1FF 00000000 00000000 00000000

: 00000000 00000000 00000000 00000000

: 00000000 00000000 00000000 00000000

Modules :

1 : 00400000 004F6000 c:\program files (x86)\fxdd - metatrader 4\terminal.exe

2 : 10000000 0001B000 c:\windows\system\expertsample.dll

3 : 16080000 00019000 c:\program files (x86)\bonjour\mdnsnsp.dll

4 : 71E70000 00123000 c:\windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\msvcr90d.dll

5 : 746D0000 000BA000 c:\windows\system32\propsys.dll

6 : 74950000 00066000 c:\windows\system32\audioeng.dll

7 : 74AF0000 00014000 c:\windows\system32\msacm32.dll

8 : 74B10000 00021000 c:\windows\system32\audioses.dll

9 : 74B40000 00065000 c:\windows\system32\odbc32.dll

10 : 74BB0000 0011B000 c:\windows\system32\mfc42.dll

11 : 74DB0000 0002F000 c:\windows\system32\wdmaud.drv

12 : 74DF0000 0002D000 c:\windows\system32\wintrust.dll

13 : 74E70000 00005000 c:\windows\system32\msimg32.dll

14 : 74E80000 00038000 c:\windows\system32\odbcint.dll

15 : 74EC0000 00005000 c:\windows\system32\wshtcpip.dll

16 : 74F20000 00006000 c:\windows\system32\rasadhlp.dll

17 : 74F90000 00027000 c:\windows\system32\mmdevapi.dll

18 : 74FC0000 00080000 c:\windows\system32\uxtheme.dll

19 : 75040000 00007000 c:\windows\system32\midimap.dll

20 : 75080000 00009000 c:\windows\system32\msacm32.drv

21 : 75090000 00004000 c:\windows\system32\ksuser.dll

22 : 750B0000 00007000 c:\windows\system32\avrt.dll

23 : 750C0000 0002C000 c:\windows\system32\apphelp.dll

24 : 750F0000 0003B000 c:\windows\system32\mswsock.dll

25 : 75130000 0003B000 c:\windows\system32\rsaenh.dll

26 : 75170000 00012000 c:\windows\system32\pnrpnsp.dll

27 : 751A0000 00008000 c:\windows\system32\winrnr.dll

28 : 751B0000 0000F000 c:\windows\system32\napinsp.dll

29 : 751C0000 0000F000 c:\windows\system32\nlaapi.dll

30 : 751E0000 00021000 c:\windows\system32\dhcpcsvc6.dll

31 : 75210000 00007000 c:\windows\system32\winnsi.dll

32 : 75220000 0002C000 c:\windows\system32\dnsapi.dll

33 : 75250000 00035000 c:\windows\system32\dhcpcsvc.dll

34 : 75290000 00019000 c:\windows\system32\iphlpapi.dll

35 : 75440000 0019E000 c:\windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\comctl32.dll

36 : 75780000 0001E000 c:\windows\system32\userenv.dll

37 : 757A0000 00012000 c:\windows\system32\msasn1.dll

38 : 757C0000 000F1000 c:\windows\system32\crypt32.dll

39 : 758E0000 00039000 c:\windows\system32\oleacc.dll

40 : 75920000 00032000 c:\windows\system32\winmm.dll

41 : 75A90000 00060000 c:\windows\syswow64\secur32.dll

42 : 75B50000 0007D000 c:\windows\syswow64\usp10.dll

43 : 75BD0000 000D0000 c:\windows\syswow64\wininet.dll

44 : 75CA0000 000C8000 c:\windows\syswow64\msctf.dll

45 : 75E00000 00045000 c:\windows\syswow64\iertutil.dll

46 : 75E50000 0004A000 c:\windows\syswow64\wldap32.dll

47 : 75EA0000 00006000 c:\windows\syswow64\nsi.dll

48 : 75EB0000 00009000 c:\windows\syswow64\lpk.dll

49 : 75EC0000 00084000 c:\windows\syswow64\clbcatq.dll

50 : 75F50000 00090000 c:\windows\syswow64\gdi32.dll

51 : 75FE0000 000D0000 c:\windows\syswow64\user32.dll

52 : 760B0000 00110000 c:\windows\syswow64\kernel32.dll

53 : 761C0000 00029000 c:\windows\syswow64\imagehlp.dll

54 : 761F0000 00003000 c:\windows\syswow64\normaliz.dll

55 : 76200000 00144000 c:\windows\syswow64\ole32.dll

56 : 76350000 0018A000 c:\windows\syswow64\setupapi.dll

57 : 764E0000 0002D000 c:\windows\syswow64\ws2_32.dll

58 : 76510000 000C6000 c:\windows\syswow64\advapi32.dll

59 : 765E0000 00073000 c:\windows\syswow64\comdlg32.dll

60 : 76660000 000AA000 c:\windows\syswow64\msvcrt.dll

61 : 76710000 00060000 c:\windows\system32\imm32.dll

62 : 76770000 00129000 c:\windows\syswow64\urlmon.dll

63 : 768A0000 0008D000 c:\windows\syswow64\oleaut32.dll

64 : 76930000 000F0000 c:\windows\syswow64\rpcrt4.dll

65 : 76A20000 00B10000 c:\windows\syswow64\shell32.dll

66 : 77530000 00007000 c:\windows\syswow64\psapi.dll

67 : 77670000 00058000 c:\windows\syswow64\shlwapi.dll

68 : 77940000 00160000 c:\windows\syswow64\ntdll.dll

Pile d'appels :

 

Problèmes majeurs de DLL

J'ai de gros problèmes pour faire fonctionner ma propre DLL.

J'ai finalement réussi à faire en sorte que la DLL puisse être appelée à partir d'un EA, sans que l'erreur 127 ne se produise. Malheureusement, à chaque fois, j'obtiens une exception.

J'ai joint l'ensemble du projet et les fichiers MT4.

Si l'un de vos dieux de la programmation pouvait y jeter un coup d'œil, je lui en serais très reconnaissant !

[NOTE : Compilé sur Visual Studio C++ Express 2008 Edition, fonctionnant sur Vista x64 Ultimate dual-core avec 6GB RAM].

-Jason

Dossiers :
dll_test.zip  1421 kb
 

création d'un fichier .dll avec l'éditeur Dev-C++ pour Metatrader

Quelqu'un a-t-il de l'expérience pour créer un fichier .dll avec Dev-C++ qui peut être utilisé pour Metatarder.

Quand je l'essaie, je pense que le fichier .def n'est pas correctement inclus dans le fichier .dll, et je reçois l'erreur 127.

J'ai trouvé un tutoriel comment je peux créer le fichier .dll pour Metatrader avec Visual Studio, mais pas avec la version gratuite, dans la version gratuite il n'y a pas la possibilité de créer MFC-Dll comme dans le tutoriel que j'ai vu.

Il serait utile pour beaucoup de gens, je pense, s'il existe un tutoriel sur la façon de créer des fichiers .dll avec l'éditeur libre Dev-C++ pour une utilisation dans Metatrader.

 

Manipulation des noms de dev-C++ ...

Bonjour Tim,

Lorsque vous utilisez dev-c++ le fichier def est généré automatiquement pour vous, le problème est que vous vous retrouvez avec des noms de fonctions qui ressemblent à ceci :

EXPORTS

_Z11GetSMAArrayP8RateInfoiiPd@16 @ 1

_Z12GetHighValueP8RateInfoii = _Z12GetHighValueP8RateInfoii@12 @ 2

_Z12GetHighValueP8RateInfoii@12 @ 3

_Z13GetCloseValueP8RateInfoii = _Z13GetCloseValueP8RateInfoii@12 @ 4

_Z13GetCloseValueP8RateInfoii@12 @ 5

_Z11GetSMAArrayP8RateInfoiiPd = _Z11GetSMAArrayP8RateInfoiiPd@16 @ 6[/PHP]

Now you need to make sure you add the following check around your code

[PHP]

#ifdef __cplusplus

extern "C" {

#endif

#ifdef __cplusplus

}

#endif

Ci-joint les fichiers d'exemple que j'ai fait pour VS2008 mais cette fois en utilisant dev-c++ ...

J'espère que cela vous aidera

Dossiers :
 

Bonjour Mistigri,

Merci beaucoup pour votre aide précieuse.

La vidéo en ligne que j'ai trouvée était aussi la vôtre.

J'ai essayé votre nouvel exemple pour l'éditeur dev-c++, il fonctionne, merci pour votre aide pour arriver jusqu'ici.

Salutations

Tim

 

Bonjour Patrick.

Si je ne me trompe pas, tu as travaillé avec IBFX il y a quelques années... es-tu toujours avec eux maintenant ? collectes-tu toujours les ticks ?

Merci pour le tutoriel.... c'est celui que j'attends...

 

C'est intéressant de faire du code externe avec une DLL. pour autant que je sache, cela rend la rétro-ingénierie plus difficile que les fichiers ex4...

Cependant, j'aimerais avoir un morceau de code qui peut être utilisé pour faire une requête http ou même se connecter directement à un mysql distant... si l'un d'entre vous peut fournir ou avoir des informations concernant la solution... merci de me le faire savoir...

 

NS2-32.dll

Bonjour à tous !

J'ai un problème en essayant d'utiliser cette bibliothèque.

Je les ai mis dans metatrader\experts\library

J'ai correctement défini le chemin pour le fichier .def.

... mais mon EA imprime sur le registre cette erreur : -65495

Quel peut être le problème ?

Et, surtout, comment le résoudre ?

Est-il possible que le fichier .def soit corrompu ?

Merci d'avance...

 
veematics:
Bonjour Patrick.

si je ne me trompe pas, vous avez travaillé avec IBFX il y a quelques années... êtes-vous toujours avec eux maintenant ? recueillez-vous toujours les ticks ?

Merci pour le tutoriel.... c'est celui que j'attendais...

Bonjour Veematics,

Désolé, je n'ai pas vu votre message jusqu'à maintenant :P

Oui, j'ai travaillé avec IBFX il y a environ deux ans et demi, je fais quelques consultations avec eux de temps en temps.

Je ne collecte plus les ticks, c'est trop de travail et je n'en ai plus vraiment l'utilité.

Patrick

 
fedecosta:
Bonjour les gars !

Je rencontre un problème en essayant d'utiliser cette bibliothèque.

Je les ai placés dans metatrader\experts\library.

J'ai correctement défini le chemin pour le fichier .def.

... mais mon EA affiche sur le registre cette erreur : -65495

Quel peut être le problème ?

Et, surtout, comment le résoudre ?

Est-il possible que le fichier .def soit corrompu ?

Merci d'avance...

Je ne suis pas sûr, cette bibliothèque me semble familière, l'utilisez-vous pour vous connecter à un site web ? Avez-vous essayé d'utiliser wininet.lib à la place ?

Je ne pense pas que le problème soit le fichier .def, sinon votre dll ne serait même pas chargée et ne fonctionnerait pas correctement... Si vous pouvez fournir plus d'informations (par exemple, un morceau du code que vous utilisez dans la dll), je pourrai peut-être essayer de vous aider.

Patrick