Closed 28554010 closed 7 years ago
首先确保mt4是最新版本,我这边试着用静态数组作为函数参数,可以编译通过,也可以执行。 int setoption(uchar &a[]) {return a[0];} int myfunction(uchar &a[32]) {return setoption(a);}
如果是最新版本,能发一下你的脚本的相关部分吗?我自己试着调用了一下curve key的函数,没有出现报错
您好。我用的版本是4.00 build 1065。我暂时是这样解决的: 把#define SOCKOPT_CURVE_KEY(KeyType,Macro) 下面两处uchar &key[32]改成了uchar &key[] 就是把静态数组变动态数组。我用的脚本就是您写的HelloWorldExample。 修改后就可以运行!您看对不对。
@hohomi 我加上32的限制,主要是为了类型安全,确保不会传入随意大小的数组。如果你那边不能编译通过,你那样解决是OK的。 不过建议你安装最新版本的MT4,metaeditor版本是5.00 Build 1562。新版添加了很多功能。
好的。原来是我版本太旧。谢谢您的帮助!
运行脚本的时候遇到了这样的错误:
在SocketOptions.mqh的第206行: 'key' - parameter can be a dynamic array only
不知道如何解决这个问题。求帮忙!