Crie sua própria extensão MetaTrader (dll) - página 4

 

Aqui está a EXCEPÇÃO:

Houve um erro crítico

Hora : 2009.03.05 14:32

Programa : Terminal do Cliente

Versão : 4.00 (construção: 220, 7 Nov 2008)

OS : Windows Vista Professional 6.0 Service Pack 1 (Build 6001)

Processadores : 2 x X86 (nível 15)

Memória : 4194303/4194303 kb

Exceção : C0000005

Endereço : 8B222B17

Tipo de acesso : ler

Endereço de acesso : 8B222B17

Registros : 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

Stack Trace : 004552FD 76672DEB 7613E3F3 779BCFED

779BD1FF 00000000 00000000 00000000 00000000

: 00000000 00000000 00000000 00000000

: 00000000 00000000 00000000 00000000

Módulos :

1 : 00400000 004F6000 c:\fxdd - metatrader 4\terminal.exe

2 : 10000000 0001B000 c:windowssystem Examplo de especialistas.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:\system32\propsys.dll

6 : 74950000 00066000 c:\system32audioeng.dll

7 : 74AF0000 00014000 c:\system32\sacm32.dll

8 : 74B10000 00021000 c:\system32audioses.dll

9 : 74B40000 00065000 c:\system32odbc32.dll

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

11 : 74DB0000 0002F000 c:\system32wdmaud.drv

12 : 74DF0000 0002D000 c:\system32wintrust.dll

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

14 : 74E80000 00038000 c:\system32odbcint.dll

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

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

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

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

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

20 : 75080000 00009000 c:\system32\sacm32.drv

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

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

23 : 750C0000 0002C000 c:\system32apphelp.dll

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

25 : 75130000 0003B000 c:\system32rsaenh.dll

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

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

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

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

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

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

32 : 75220000 0002C000 c:\system32dnsapi.dll

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

34 : 75290000 00019000 c:\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:\system32\suserenv.dll

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

38 : 757C0000 000F1000 c:\system32crypt32.dll

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

40 : 75920000 00032000 c:\system32winmm.dll

41 : 75A90000 00060000 c:\syswow64secur32.dll

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

43 : 75BD0000 000D0000 c:\syswow64wininet.dll

44 : 75CA0000 000C8000 c:\syswow64\sctf.dll

45 : 75E00000 000 00045000 c:\syswow64\syswow64\siertutil.dll

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

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

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

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

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

51 : 75FE0000 000D0000 c:\syswow64\syswow32.dll

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

53 : 761C0000 00029000 c:\syswow64\simagehlp.dll

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

55 : 76200000 00144000 c:\syswow64\syswow32.dll

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

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

58 : 76510000 000C6000 c:\syswow64advapi32.dll

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

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

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

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

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

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

65 : 76A20000 00B10000 c:\syswow64shell32.dll

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

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

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

Chamada em pilha :

 

Principais problemas de DLL

Estou tendo alguns grandes problemas para conseguir que minha própria DLL funcione.

Finalmente cheguei ao ponto de chamar a dll de dentro de uma EA, e isso não me dá o erro 127. Infelizmente, toda vez que eu recebo uma exceção.

Anexei o projeto inteiro, e os arquivos MT4.

Se um de vocês programando deuses pudesse apenas dar uma rápida olhada nele, eu ficaria muito grato!

[NOTA: Compilado no Visual Studio C++ Express 2008 Edition, rodando no Vista x64 Ultimate dual-core c/ 6GB de RAM]

-Jason

Arquivos anexados:
dll_test.zip  1421 kb
 

criação de arquivo .dll com Dev-C++ Editor para Metatrader

Tenha alguém com experiência para criar um arquivo .dll com Dev-C++ que possa ser usado para Metatarder.

Quando eu tento, eu acho que o arquivo .def não está correto, inclusive no arquivo .dll, e eu me torno o erro 127.

Eu encontrei um tutorial de como eu posso criar um arquivo .dll para Metatrader com Visual Studio, mas não com a versão gratuita, na versão gratuita não há possibilidade de criar o MFC-Dll como no tutorial que eu tenho visto.

Seria útil para muitas pessoas que eu acho que se em algum lugar houver um tutorial de como criar arquivos .dll com o editor livre Dev-C++ de código aberto para uso no Metatrader.

 

dev-C++ nome mangling ...

Olá Tim,

Ao utilizar dev-c++ o arquivo def é gerado automaticamente para você, o problema é que você acaba com nomes de funções que se parecem com isto :

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

Em anexo estão os arquivos de exemplo que fiz para o VS2008, mas desta vez usando dev-c++ ...

Espero que isto ajude

Arquivos anexados:
 

Olá Mistigri,

muito obrigado por sua boa ajuda.

O vídeo online que encontrei foi também o seu vídeo.

Tenho trie seu novo exemplo para o editor dev-c++, ele funciona, obrigado por sua ajuda para chegar até aqui.

Cumprimentos

Tim

 

Olá Patrick.

se eu não estou errado, você trabalha com o IBFX há alguns anos... você ainda está com eles agora? você ainda coleta carrapatos?

Obrigado pelo tutorial.... É por isso que estou esperando...

 

É interessante fazer código externo com DLL. tanto quanto sei, torna a engenharia reversa mais difícil do que arquivos ex4.

entretanto, eu gostaria de ter um pedaço de código que possa ser usado para fazer um pedido http ou mesmo conectar diretamente ao remoto mysql... se algum de vocês puder fornecer ou ter informações sobre a solução... por favor, me avisem...

 

NS2-32.dll

Olá, pessoal!

Eu tenho um problema tentando usar esta biblioteca.

Coloquei-os na biblioteca de especialistas em metatrader

Eu defino corretamente o caminho para o arquivo .def

... mas minha EA imprime no registro este erro: -65495

Qual pode ser o problema?

E, em sua maioria, como resolvê-lo?

É possível que o arquivo .def possa ser corrompido?

Obrigado de antemão...

 
veematics:
Olá Patrick.

se eu não estou errado, você trabalha com o IBFX há alguns anos... você ainda está com eles agora? você ainda coleta carrapatos?

Obrigado pelo tutorial.... É por ele que estou esperando...

Olá Veematics,

Desculpe não ter visto seu posto até agora :P

Sim, eu trabalhava com o IBFX há cerca de dois anos e meio, eu faço algumas consultas com eles de vez em quando.

Eu não coleciono mais carrapatos, é muito trabalho e não tenho mais utilidade para ele.

Patrick

 
fedecosta:
Olá, pessoal!

Tenho um problema ao tentar usar esta biblioteca.

Coloquei-os na biblioteca de especialistas em metatrader

Eu defino corretamente o caminho para o arquivo .def

... mas minha EA imprime no registro este erro: -65495

Qual pode ser o problema?

E, em sua maioria, como resolvê-lo?

É possível que o arquivo .def possa ser corrompido?

Obrigado antecipadamente...

Não tem certeza, essa biblioteca parece familiar, você está usando isso para se conectar a um site? Você já tentou usar wininet.lib em vez disso?

Eu não acho que o problema aqui é o arquivo def ou sua dll nem sequer carregaria e funcionaria corretamente... Se você puder fornecer mais informações ( ou seja, alguma parte do código que você está usando na dll ) então talvez eu possa tentar ajudar.

Patrick ...

Razão: