Websocket如何? - 页 14

 
Алексей Барбашин:

费多尔,你走错路了。它不像那样工作!你已经干净利落地使用了沃洛佳给你的代码。你的任务是从websocket中获取数据,并将要价和出价传递给mql虽然我们只把收到的数据中的bid返回给mql,但你的任务是把整个结构返回给mql,并把信息输出到日志。

好的。我现在要试着重做它。
 
Алексей Барбашин:

是的,它没有。但这个问题是可以解决的。在最后阶段,当代码被调试好后,我们只需要在夏普的库中实现DLLExport,一切都会在mt4中工作。

不会的,我已经测试过了。

无论是C++/CLI

或未经管理的出口,作者:罗伯特-吉塞克--关于我正在写的文章

ZS:也许用DLLExport会工作,简单的方法返回a+b;没有了,一切需要初始化的.Net都不工作,虽然....。会很高兴能学到新的东西。

ZZZY: 找到了https://github.com/3F/DllExport , 没有使用,找到了别的东西,但它是同一个芯片。

请再次注意,UnmanagedExports是由Robert Giesecke 创建的。你需要访问他的页面。

但这个仓库与Robert无关,一般来说,GitHub/3F的开发者仍在开发。

 

由于某些原因,它返回的是零。


 
Igor Makanu:

不会的,我已经检查过了

或C++/CLI

或未经管理的出口,作者:罗伯特-吉塞克--关于我正在写的文章

ZS:也许用DLLExport会工作,简单的方法返回a+b;,没有别的,一切需要初始化的.Net都不工作,虽然....。我很乐意举个例子,我总是很乐意学习新的东西。


工作。
你需要对IL代码做正确的修改。

我做了自己的exe,它在VS编译后进行了修改。
然后,C#方法在C/MQL中变得可见

加上调集。
有一阵子没有使用这个了。

 
Vladimir Suslov:


它成功了。
你需要对IL代码做正确的修改。

我做了一个自己的exe,在VS编译后进行修改。
然后,C#方法在C/MQL中变得可见

有一段时间没有使用这个了

我刚刚更新了我上面的帖子。

这是我使用的相同代码--来自Robert Giesecke的代码

但你不必在那里手动修复任何东西,主要问题是处理复杂的数据类型,我最近刚做了一个数据交换,划出一个方法

  [DllExport("redismtset", CallingConvention = CallingConvention.StdCall)]
        public static void redismtset([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] byte[] value, int sz, [MarshalAs(UnmanagedType.LPWStr)]string key)
        {
            byte[] tmp = new byte[sz];
            Array.Copy(value, 0, tmp,0, sz);
            if (dbExcPing()) DB.Set(key, tmp);
        }
//----
 [DllExport("redismtget", CallingConvention = CallingConvention.StdCall)]
        public static int redismtget([MarshalAs(UnmanagedType.LPWStr)]string key)
        {
           if (dbExcPing()) db_buffer_byte = DB.Get(key); else db_buffer_byte = null;
            return db_buffer_byte?.Length?? - 1;
        }
我试图通过StringBuilder处理一个字符串数组,它的工作非常不稳定,我放弃了,因为它需要在MQL4和.Net中不断控制字符串缓冲区的内存分配--一般来说,不断寻找什么时候停止工作)))。
 
Алексей Барбашин:

当我使用这种方法时,我需要实现一次DllExport,然后所有的方法都可以被声明为导出的。这个库本身对代码进行了必要的修改。但自从MT5开始支持夏普后,我就不再 "乱来 "了。

我想问题是关于MT4的?

 
Алексей Барбашин:

这没什么大不了的。Dequeue()方法从队列中获取一条记录。你试图从每条记录中提取两条记录和不同的参数。嗯,首先,没有人保证在访问的那一刻,队列中会有两条记录)。

这样重做了。

MQL


现在根本没有返回任何东西,因为我添加了一个检查

 
Igor Makanu:

我刚刚更新了我上面的帖子。

这也是我使用的代码--来自罗伯特-吉塞克的代码

但没有什么可以手工纠正的,主要问题是处理复杂的数据类型,我最近刚做了一个数据交换,划出一个方法

我没有这个工作(几年前),所以我自己做了一个。
现在可能已经更新了,可以使用了。
但原则是完全一样的

 
Vladimir Suslov:

这个解放军对我不起作用(几年前),我自己做了一个。
我现在可能已经更新了,而且还能用。
但原则是完全一样的

它不能在俄罗斯语中使用。

但如果你用英语安装虚拟机+Win7 ,肯定会顺利工作- 我在安装过程中选择了Win语言,尝试了不同的方法,将Win7的俄语安装切换到英语。- 在注册表或文件夹的某个地方仍然是俄罗斯的,因为这一点,模板Robert Giesecke编译时有警告,将无法导出.dll。

SZZY: 在我的硬盘上保存了一个10GB的虚拟机镜像,现在我可以顺利使用模板了Robert Giesecke

 
伙计们,为什么我得到了零的回报?而队列是空的?