讨论 "如何在10分钟内为MQL5编写一个DLL并交换数据"。 - 页 11

 
Seric29:

嗯,是的,我也见过没有它的情况,它对我不起作用,好吧,告诉我该复制什么,你能给我指出正确的方向吗?

https://github.com/Roffild/RoffildLibrary/blob/master/Libraries/Roffild/PythonDLL/public.h

https://github.com/Roffild/RoffildLibrary/blob/c38ba6babd0935704fd30abeb58b953e33ede3e9/Include/Roffild/PythonDLL.mqh#L16

我使用这种方法是为了不在不同的文件中重复代码。

 
Roffild:

这不是我可以做的事。

 
我需要在c++中包含哪些库来向dll传递日期和字符串,以及我如何在c++中使用颜色?
 
Seric29:
我需要在c++中包含哪些库来向dll传递日期和字符串,以及我如何在c++中使用颜色?

都不需要。__time64_t (日期时间) 和 wchar_t (字符串) 是标准类型。颜色的类似物是COLORREF。

 
Ihor Herasko:

都不需要。__time64_t (日期时间) 和 wchar_t (字符串) 是标准类型。颜色的类似物是COLORREF。

既然我是个傻瓜,那么用你的建议来显示这个变量是如何声明的,它的值又是怎样的呢?对于日期,它必须是__time32_t,因为我用的是32。告诉我如何声明__time32_t,如何声明存储日期的变量,以及 它的外观和颜色是怎样的。对于字符串,我是这样做的

#include<string>

使用std::string。

string l="123456"。

对于日期,建议#include<chrono>,但它不起作用,但关于颜色的建议甚至更复杂,甚至写它也不行。

 
哦,是吗!...它比木头要硬得多。我已经在同一个东西上摸索了三天;我改变了一切,重新命名,重新安排,扭曲了一切,以至于连我大脑空间里的臭虫都停止了喘息,认命于他们的事业的徒劳,向一切吐口水,去找我的邻居,请了假;得出了明确的结论,有比他们短暂的蒙昧主义更酷的东西。在降B大调中,弹奏诗乐,与手鼓和定音鼓一起跳巴拉莱卡舞;这显然是某种外来的颂歌。..?!这是因为我没有在终端设置 中勾选 Tools/Settings/Advices/Allow to import DLL。哦,伙计....最重要的是,我想不明白:也许我大部分时间都做对了......我可以重复整个过程,但我不记得我做过什么,怎么做的.......情况越来越糟....在这里,一切都在不同的工作室里工作和运作。我唯一不明白的是与 "C "语言的联系以及与结构和类的互动,这意味着,你将不能把它们放在那里,但我只想到尝试写 "CPP "而不是 "C",并尝试......我想我必须在途中的某个地方写所有的东西。好的教训。祝大家好运。 试了一下,用这个 "CPP "是不行的,但DLL本身里面的类交互使它全部正常。
Настройки платформы - Начало работы - MetaTrader 5
Настройки платформы - Начало работы - MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
 
P.S: 我一次性删除错误的文件,甚至不记得几乎所有的错误,(这时我要自己做一个DLL),但并不总是这样,不知为什么?!....而且我也不可能抓住它。它与一些属性和Windows Kits与winnt.h库的信息有关,当然,如果你把你的浏览器翻译成英文搜索的话,可以在飞行中找到,但昨天我尝试了一下搜索,没有成功。我个人认为,在项目 设置的某个地方作弊,或做一些随机的事情,然后linker的动作就会很疯狂。在一般情况下,这个错误对我来说仍然是在模糊的边缘...,然而,有一个选项,现在迅速使mura,它会产生这个错误,看看你的代码和分析....最有可能的是,我将这样做。但不是马上,而是逐步进行,否则我的大脑就会完全烧毁,剩下的就不多了。祝大家好运。P.S.: 我忘记了微软文档,它有一切,现在我瞥了一眼,已经发现了一个有趣的问题,它说在某处我没有添加#define的表达。哦,我忘了博士。去他妈的谷歌....
 
如何在C++ dll库中实现数据名和颜色变量?如何在dll中调用Print()函数,用什么来代替它,因为c++没有这个功能?
 
Ihor Herasko:

都不需要。__time64_t (日期时间) 和 wchar_t (字符串) 是标准类型。颜色的类似物是COLORREF。


那么,让我们看看它是如何工作的,好吗?

 
Seric29:
如何在c++ dll库中实现数据名和颜色类型变量?如何在dll中调用Print()函数,用什么来替代它,因为c++没有这个功能?

Print()是一个仅在mql4和mql5中可用的函数。它不能被直接替换,因为它的输出设备是终端的一个日志文件。但它可以被间接调用,如果你向专家顾问(指标,脚本)发送相应的命令,该dll被连接到该顾问。这取决于dll和专家顾问之间的数据交换是如何实现的。

另外,如果有一个任务要在某个地方打印东西,不一定是在终端日志中,这有很多可能性:文件、打印机、在终端显示。