创建您自己的MetaTrader扩展(dll)。 - 页 4

 

这里有一个例外。

出现了一个重要的错误

时间 : 2009.03.05 14:32

程序 : 客户端

版本 : 4.00 (build: 220, 7 Nov 2008)

操作系统 : Windows Vista Professional 6.0 Service Pack 1 (Build 6001)

处理器 : 2 x X86 (15级)

内存 : 4194303/4194303 kb

异常 : 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 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

调用堆栈。

 

主要的DLL问题

我在让我自己的DLL发挥作用 方面遇到了一些重大问题。

我终于让它达到了可以从EA中调用dll的程度,而且不会出现127的错误。不幸的是,每次我都会得到一个异常。

我附上了整个项目和MT4文件。

如果你们中的某位编程之神能快速看一下,我将非常感激!

[注意:在Visual Studio C++ Express 2008版上编译,运行在Vista x64 Ultimate双核和6GB内存上。]

-杰森

附加的文件:
dll_test.zip  1421 kb
 

用Dev-C++编辑器为Metatrader创建.dll文件

有谁有经验用Dev-C++创建一个可以用于Metatrader的.dll文件。

当我尝试时,我认为.def文件没有正确地包含在.dll文件中,并且我出现了错误127

我找到了一个教程,如何用Visual Studio为Metatrader创建.dll文件,但不是免费版本,在免费版本中,没有可能像我看到的教程那样创建MFC-Dll。

我想,如果有一个教程,如何用开源的免费编辑器Dev-C++创建.dll文件用于Metatrader,这对很多人来说是很有帮助的。

 

dev-C++名称的混淆...

你好,Tim。

当使用 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++ ...

希望这对你有帮助

附加的文件:
 

你好,Mistigri。

非常感谢您的帮助。

我在网上找到的视频也是你的视频。

我在dev-c++编辑器中试用了你的新例子,它很有效,感谢你的帮助,让我走到了这里。

问候

蒂姆

 

你好,帕特里克。

如果我没记错的话,你几年前在IBFX工作过......你现在还在他们那里吗?

谢谢你的教程....,这是我在等待的。

 

用DLL制作外部代码是很有趣的。据我所知,它使逆向工程比ex4文件更困难。

然而,我希望有一大块代码可以用来进行http请求,甚至直接连接到远程的mysql......如果你们中的任何人可以提供或有关于解决方案的信息......请让我知道......。

 

NS2-32.dll

大家好!

我在尝试使用这个库时遇到了一个问题。

我把它们放在metatrader/experts/library里。

我正确定义了.def文件的路径

...但我的EA在注册表上打印出这个错误:-65495

这到底是什么问题?

最重要的是,如何解决这个问题?

有没有可能是.def文件被破坏了?

提前感谢...

 
veematics:
你好,帕特里克。

如果我没记错的话,你几年前与IBFX合作过......你现在还与他们合作吗?

谢谢你的教程....,这是我在等待的。

你好,Veematics。

对不起,直到现在才看到你的帖子:P

是的,我在两年半前曾与IBFX合作,我每隔一段时间就会与他们做一些咨询。

我不再收集点子了,这太费事了,而且我也没有什么用处了。

帕特里克

 
fedecosta:
大家好!

我在尝试使用这个库时遇到了一个问题。

我把它们放在metatrader/experts/library里。

我正确定义了.def文件的路径

...但我的EA在注册表上打印出这个错误:-65495

这到底是什么问题?

最重要的是,如何解决这个问题?

有没有可能是.def文件被破坏了?

提前感谢...

不确定,那个库看起来很熟悉,你是用它来连接一个网站吗?你有没有试过用wininet.lib代替?

我不认为这里的问题是def文件,否则你的dll甚至无法加载和正常工作......如果你能提供更多的信息(即你在dll中使用的一些代码),也许我可以尝试帮助你。

帕特里克