поэтому он должен оценить x и ввести значение в ST2 для структуризации. с технической точки зрения При использовании одноуровневой индирекции ST2 x строчит имя введенного макроса но при использовании двойного слоя он строчит значение введенного макроса
memmap.mq5
MemMapLib.mqh
wrong parameters count, 4 passed, but 3 requires MemMapLib.mqh 2799
long CMemMapFile::Open(string,int,int) MemMapLib.mqh 25119
call resolves to 'long CMemMapFile::Open(string,int,int)' instead of 'long CMemMapApi::Open(string,int,int,int&)' due to new rules of method hiding MemMapLib.mqh 2799
see declaration of function 'CMemMapFile::Open' MemMapLib.mqh 25119
see declaration of function 'CMemMapApi::Open' MemMapLib.mqh 12219
wrong parameters count, 3 passed, but 1 requires MemMapLib.mqh 2929int CMemMapFile::Fill(uchar) MemMapLib.mqh 25314
call resolves to 'int CMemMapFile::Fill(uchar)' instead of 'int CMemMapApi::Fill(long,uchar,int&)' due to new rules of method hiding MemMapLib.mqh 2929
see declaration of function 'CMemMapFile::Fill' MemMapLib.mqh 25314
see declaration of function 'CMemMapApi::Fill' MemMapLib.mqh 12414
wrong parameters count, 4 passed, but 1 requires MemMapLib.mqh 29916int CMemMapFile::Grows(int) MemMapLib.mqh 25514
call resolves to 'int CMemMapFile::Grows(int)' instead of 'long CMemMapApi::Grows(long,string,int,int&)' due to new rules of method hiding MemMapLib.mqh 29916
see declaration of function 'CMemMapFile::Grows' MemMapLib.mqh 25514
see declaration of function 'CMemMapApi::Grows' MemMapLib.mqh 125193 errors, 3 warnings 33
需要传输大量(千兆字节)数据。遗憾的是,通过该库实现的性能超低。
我不得不使用原来的 DLL 集 完全重做。它运行得很快。
遗憾的是,FileMapping 有一个明显的缺点。如果子应用程序(读取数据)由于某种原因没有正确完成工作( kernel32 ::UnmapViewOfFile 和 kernel32::CloseHandle 调用) ,"文件 "就会一直挂在内存中,直到关闭所有打开它的进程(kernel32::OpenFileMappingW 和kernel32::MapViewOfFile 调用)。尤其是,你不能改变它的大小,只能重新打开(关闭并重新打开)。
我还没有找到 解决问题的办法。这个库很难遇到这种情况,因为它的每个操作都以打开开始,以关闭结束。这也是它运行速度 如此之慢的 原因。但您仍可能遇到这种错误。然后 MQL 程序就会随着这条信息崩溃。
由于某些原因,我在尝试编译 memmap.mq5 文件时出错了:
有人能告诉我我做错了什么吗?以及如何修复?
库源不符合 MQL5 语言的当前要求。
有什么办法可以纠正吗?或者是否需要重新修改所有源代码,而没有作者是不可能做到的?我认为编译器在这里只产生了 3 个错误。如果能改正就太好了。
有什么办法可以解决这个问题吗?还是说必须重新修改所有源代码,而没有作者是不可能做到的?我认为编译器只给出了 3 处错误。如果能纠正就太好了。
在这里,我已经亲自修改了代码。需要的人可以使用。专家顾问编译成功。
我从第 251 行开始添加了这些内容: