자신만의 MetaTrader 확장 프로그램(dll) 생성 - 페이지 4

 

예외는 다음과 같습니다.

치명적인 오류가 발생 했습니다

시간 : 2009.03.05 14:32

프로그램 : 클라이언트 터미널

버전 : 4.00 (빌드: 220, 2008년 11월 7일)

OS : Windows Vista Professional 6.0 서비스 팩 1(빌드 6001)

프로세서: 2 x X86(레벨 15)

메모리 : 4194303/4194303kb

예외: C0000005

주소 : 8B222B17

액세스 유형 : 읽기

접속주소 : 8B222B17

레지스터: 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

스택 추적: 004552FD 76672DEB 7613E3F3 779BCFED

: 779BD1FF 00000000 00000000 00000000

: 00000000 00000000 00000000 00000000

: 00000000 00000000 00000000 00000000

모듈:

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 파일(x86)\bonjour\mdnsnsp.dll

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

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\com

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

호출 스택:

 

주요 DLL 문제

내 DLL이 작동 하도록 하는 데 몇 가지 주요 문제가 있습니다.

마침내 EA 내에서 dll을 호출할 수 있는 지점까지 도달했는데 127 오류가 발생하지 않습니다. 불행히도 매번 예외가 발생합니다.

전체 프로젝트와 MT4 파일을 첨부했습니다.

프로그래밍의 신 중 한 분이 간단히 살펴보실 수 있다면 정말 감사하겠습니다!

[참고: 6GB RAM이 있는 Vista x64 Ultimate 듀얼 코어에서 실행되는 Visual Studio C++ Express 2008 Edition에서 컴파일됨]

-제이슨

파일:
dll_test.zip  1421 kb
 

Metatrader용 Dev-C++ 편집기로 .dll 파일 생성

Metatarder에 사용할 수 있는 Dev-C++로 .dll 파일을 만든 경험이 있는 사람이 있습니다.

내가 그것을 시도하면 .def 파일이 .dll 파일의 올바른 includet가 아니라고 생각하고 오류 127 이 됩니다.

Visual Studio를 사용하여 Metatrader용 .dll 파일을 생성하는 방법에 대한 자습서를 찾았지만 무료 버전에서는 그렇지 않습니다. 무료 버전에서는 내가 본 자습서에서와 같이 MFC-Dll을 생성할 가능성이 없습니다.

Metatrader에서 사용할 오픈 소스 무료 편집기 Dev-C++로 .dll 파일을 만드는 방법에 대한 튜토리얼이 있는 곳이라면 많은 사람들에게 도움이 될 것입니다.

 

dev-C++ 이름 맹글링 ...

안녕하세요 팀,

dev-c++를 사용할 때 def 파일이 자동으로 생성됩니다. 문제는 결국 다음과 같은 함수 이름을 갖게 된다는 것입니다.

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

VS2008에서 했던 샘플 파일이 첨부되어 있지만 이번에는 dev-c++를 사용하여 ...

도움이 되었기를 바랍니다

 

안녕하세요 미스티그리입니다.

좋은 도움 주셔서 감사합니다.

내가 찾은 온라인 비디오도 당신의 비디오였습니다.

dev-c++ 편집기에 대한 새 예제를 시도했지만 작동합니다. 여기까지 오는 데 도움을 주셔서 감사합니다.

문안 인사

 

안녕하세요 패트릭입니다.

내가 틀리지 않다면, 당신은 몇 년 전에 IBFX와 함께 일하고 있습니다... 당신은 지금도 그들과 함께하고 있습니까? 아직도 진드기를 모으시나요?

튜토리얼 감사합니다.... 기다리고 있습니다.

 

DLL로 외부 코드를 만드는 것은 흥미롭습니다. 내가 아는 한 ex4 파일보다 리버스 엔지니어링이 더 어렵습니다.

그러나 http 요청을 하거나 원격 mysql에 직접 연결하는 데 사용할 수 있는 코드 덩어리를 갖고 싶습니다. 솔루션에 대한 정보를 제공하거나 제공할 수 있는 사람이 있다면 알려주세요...

 

NS2-32.dll

안녕하세요 여러분!

이 라이브러리를 사용하는 데 문제가 있습니다.

나는 그것들을 metatrader\experts\library에 넣었습니다.

.def 파일의 경로를 올바르게 정의합니다.

...하지만 내 EA는 다음 오류를 레지스터에 인쇄합니다. -65495

무엇이 문제가 될 수 있습니까?

그리고 무엇보다 어떻게 해결해야 할까요?

.def 파일이 손상될 수 있습니까?

미리 감사드립니다...

 
veematics:
안녕하세요 패트릭입니다.

내가 틀리지 않다면, 당신은 몇 년 전에 IBFX와 함께 일하고 있습니다... 당신은 지금도 그들과 함께하고 있습니까? 아직도 진드기를 모으시나요?

튜토리얼 감사합니다.... 기다리고 있습니다.

안녕하세요 비매틱스입니다.

지금까지 게시물을 보지 못했습니다 죄송합니다 :P

네, 약 2년 반 전에 IBFX와 함께 일한 적이 있습니다. 가끔 컨설팅을 하고 있습니다.

나는 더 이상 진드기를 수집하지 않습니다. 너무 많은 일이 있고 더 이상 쓸모가 없습니다.

패트릭

 
fedecosta:
안녕하세요 여러분!

이 라이브러리를 사용하는 데 문제가 있습니다.

나는 그것들을 metatrader\experts\library에 넣었습니다.

.def 파일의 경로를 올바르게 정의합니다.

...하지만 내 EA는 다음 오류를 레지스터에 인쇄합니다. -65495

무엇이 문제가 될 수 있습니까?

그리고 무엇보다 어떻게 해결해야 할까요?

.def 파일이 손상될 수 있습니까?

미리 감사드립니다...

잘 모르겠습니다. 라이브러리가 친숙해 보입니다. 웹사이트에 연결하는 데 사용하고 있습니까? 대신 wininet.lib를 사용해 보셨습니까?

여기서 문제가 def 파일이라고 생각하지 않거나 dll이 로드되지 않고 제대로 작동하지 않는다고 생각합니다. 더 많은 정보(예: dll에서 사용 중인 코드의 일부)를 제공할 수 있다면 아마도 제가 할 수 있습니다. 도와주세요.

패트릭