Обсуждение статьи "Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?" - страница 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:

В общем понятно мне такое не по зубам. 

 
Какие библиотеки нужно подключать в с++ чтобы передавать даты и строки в dll, а также как работать с цветами в с++?
 
Seric29:
Какие библиотеки нужно подключать в с++ чтобы передавать даты и строки в dll, а также как работать с цветами в с++?

Никакие не нужно. __time64_t (datetime) и wchar_t (string) - это стандартные типы. Аналог для color - COLORREF

 
Ihor Herasko:

Никакие не нужно. __time64_t (datetime) и wchar_t (string) - это стандартные типы. Аналог для color - COLORREF

Ребята я валенок неужели сложно показать как объявляется эта переменная и как выглядят значения используя ваши рекомендации. Значит по датам будет вот это наверное __time32_t потому что у меня 32ка. Покажите как объявляется __time32_t , как объявляется переменная которая хранит дату, как выглядит значение даты и тоже самое для цветов. Со строками сделал так 

#include<string>

using std::string;

string l="123456 ";

Для дат посоветовали #include <chrono>, но оно не работает, а про цвета дали совет ещё по сложнее даже писать об этом не буду.

 
Да уж?!... . Тут по круче валенок. Три дня копаюсь с одним и тем же; уже все поменял, переименовал, переставил местами, перекрутил все так, что даже в мозговом пространстве клопы перестали вставать на дыбы и смирились с безысходностью своего предприятия, плюнули на все и ушли к соседям взяв отпуск за свой счет; придя к однозначному выводу, что тут что-то по круче их мимолетного мракобесия: игры на гуслях, танцев под балалайку с бубнами и тимпанами в гаме Си бемоль мажор; тут явно какие-то инопланетные напевы... ?! А все дело было в том что я не включил в настройках терминала: Сервис\настройки\советники\разрешить импорт DLL - не поставил чек-бокс. Надо же так... . И до кучи от этого многообразия действий не могу понять: может я все делал правильно почти всегда..., можно было бы повторить весь этот процесс, но не помню что и как делал... . Бывает и хуже... . Тут все работает и работает на разных студиях. Единственный непонятный момент(пока) - это привязка к языку "С" и взаимодействия со структурами и классами, то есть, их уже по ходу ни как нельзя будет туда воткнуть; но, что-то только пришло на ум попробовать вместо "С" написать "CPP" и попробовать.  По ходу надо все куда-то писать..., наверно. Хороший урок. Удачи всем. Попробовал, так не прокатывает с этим "CPP", а вот взаимодействие класса внутри самой DLL это все работает.
Настройки платформы - Начало работы - MetaTrader 5
Настройки платформы - Начало работы - MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
 
P.S: я ошибочные файлы удаляю сразу и даже не помню почти что берется какая-та ошибка, (Это когда я сам собираюсь смастерить DLL), но не всегда, почему-то?!... . И вот ни как не могу отловить ее. Связана она с какими-то атрибутами и с Windows Kits с библиотекой winnt.h Информацию конечно можно найти по ходу если браузер перевести в англоязычный поиск, а так, вчера пробовал немного поискать и что-то без успеха. Сам лично предполагаю, что, где-то в настройках проекта надо химичить, или что-то делаю в разноброд, а линковщик потом сходит сума от своих передвижений. Вообщем пока эта ошибка для меня за краем не известности..., правда есть вариант, сейчас по быстрому смастерить муру, что бы она выдала эту ошибку и посмотреть Ваш код и проанализировать... . Скорей всего так и буду делать. Но не сразу, а постепенно, а то мозги сгорят совсем, а там их осталось совсем чуть-чуть. Удачи всем. P.S: забываю про Microsoft Docs, а там все есть, надо же так, сейчас мельком глянул и уже интересное нашел, говорится что где-то не добавляю выражение #define. Во, а я и забыл про Docs. Ну его этот гугл... .
 
Как в dll библиотеке на с++ реализовать переменную типа datetame и color? Как в dll вызвать функцию Print() чем её заменить, потому что в с++ её нет? 
 
Ihor Herasko:

Никакие не нужно. __time64_t (datetime) и wchar_t (string) - это стандартные типы. Аналог для color - COLORREF


Так всё таки покажите как это работает?

 
Seric29:
Как в dll библиотеке на с++ реализовать переменную типа datetame и color? Как в dll вызвать функцию Print() чем её заменить, потому что в с++ её нет? 

Print() - это функция, доступная только в mql4 и mql5. Заменить напрямую невозможно, потому что устройство вывода для нее - файл журнала терминала. Но ее можно вызвать опосредованно, если направить эксперту(индикатору, скрипту), к которому подключена dll, соответствующую команду. Зависит от того, как устроен обмен данными между dll и экспертом.

Также, если есть задача что-то где-то напечатать, не обязательно в журнале терминала, то для этого существует огромное количество возможностей: файл, принтер, дисплей в конце концов.

Причина обращения: