Внедрение или DLL - что выбрать.

7 июня 2019, 18:01
Yuriy Asaulenko
0
50

Понадобилась мне простенькая База данных SQLite. Вроде никаких проблем не должно быть. Есть статья - SQL И MQL5: РАБОТАЕМ С БАЗОЙ ДАННЫХ SQLITE описывающая непосредственное внедрение SQLite3.dll в программу MQL и непосредственную работу из MQL c такими БД.

Однако. 1. Далеко не все из внедренного реально нужно, 2. Далеко не все что нужно внедрено (C-API SQLite далеко не маленький), 3. Из за языковых различий многое внедрить в MQL наверное просто невозможно.

Все это вызывает ряд проблем, которые с ходу и непонятно как решать.

Я этим заниматься и не стал, и просто решил написать свою С++ DLL в которой производится вся необходимая конфигурация и работа с БД SQLite и имеется всего несколько нужных export функций для работы связи с MQL программой.

Получилось просто, быстро, не надо ничего дополнительно изучать. При этом программа MQL не загромождается дополнительными, несвойственными ей, кодами и задачами, и ничего не знает о существовании БД.

Надо сказать, что это уже не первое такое решение. Ранее я делал то-же для связи с сокетами и другим софтом. Да, и не могу сказать, что такое решение является чем-то необычным. Самое что ни на есть общепринятое стандартное решение.

В общем, связь программ с DLL-библиотеками гораздо проще реализуется через DLL-обертку, чем через непосредственное внедрение нужных библиотек непосредственно в код программы.

Единственный недостаток таких решений - отсутствие универсальности, и возможность применения только для конкретных решений. Но, для большинства случаев, это и не нужно.

Но, с другой стороны, универсальность у внедренной в MQL библиотеке тоже отсутствует, и она пригодна только для типовых решений.

Поделитесь с друзьями: