资料库: 无需 DLL 的文件映射

 

无需 DLL 的文件映射:

这个类 (转换自 C++ 至 MQL5) 可与内存映射文件工作。

作者: o_O

 

亚历克斯,你是否设想过将虚拟文件句柄传递给另一个线程?

我没有找到,如果有,请指给我看。

ZY 但总的来说,这是件好事。

 
Urain:

亚历克斯,你有没有考虑过将虚拟文件的句柄传递给另一个线程?

有什么问题吗?
 
sergeev:
有什么问题吗?

没问题,我封装了句柄并将其传递给了另一个对象,一切正常。

我只是想知道你在哪里提供了这种文件访问传输。

 

在 CMemMapApi 类中,内存句柄应由使用它的程序(此对象)存储。

而在 CMemMapFile 中,句柄存储在公共m_hmem 中。

 
sergeev:

在 CMemMapApi 类中,内存句柄应由使用它的程序(此对象)存储。

而在 CMemMapFile 中,句柄存储在公共m_hmem 中。

那我就不太明白了:)

关闭文件 后,是否可以在另一个程序中打开它?

是关闭后销毁?

文件销毁后内存会被释放吗?

 
Urain:

那就是我不太明白了:)

关闭文件 后,该文件是可以在其他程序中打开还是

关闭后文件会被销毁?

文件销毁后内存会被释放吗?

啊哈,我明白了,您不能传递句柄,而只能在新线程中根据文件名重新打开文件。
 
Urain:

啊哈,想通了,你可以不传递句柄,而是直接在新线程中按文件名新建一个开口。
尼古拉,我为什么要这么做? 当然是为了让不同的软件可以同时写入/读取同一个文件。
 
sergeev:
尼古拉,我为什么要这么做? 当然是为了让不同的软件能够同时写入/读取一个共同的文件。
亚历克斯,感谢你的辛勤工作。我还没有尝试使用它,因为这对我来说是个新课题,我需要阅读(拉希德推荐的文章)。现在只想问一个问题。主题标题中强调--不使用 DLL。但我们呼吁使用kernel32.dllmsvcrt.dll。因此,这种解决方案不适合市场?
 
tol64:
亚历克斯,感谢你的辛勤工作。我还没有尝试使用它,因为这对我来说还是一个新课题,我需要阅读(拉希德建议的文章)。但我现在有一个问题。主题标题中强调--不使用 DLL。但我们呼吁使用kernel32.dllmsvcrt.dll。那么这个解决方案不适合市场?

它不适合市场(尽管仍有疑问),但 Renat 说他会考虑在 MQL5 标准中实现这种功能。

在标题中,我指的是没有自写的 dll,毕竟标准 Windows dll 比自写的更安全。

 
Urain:

标题的意思是没有自写的 dll,毕竟标准的 Windows dll 比自写的更安全。

是的,我的意思是不使用自写的 dll。
对于市场来说,这种解决方案(根据现有规则)并不合适。


但市场(我真的希望)会接受我提出的基本变体-- 您可以 发布一个调用 ex5库函数 的智能交易系统

也就是说,所有的 dll 调用都放在 ex5 中,而 ex5 不会在市场上公开,而是放在代码库中或开发人员的网站上。