В чем отличия библиотеки от включаемых файлов

 
Подскажите что и в каких ситуациях лучше использовать когда библиотеку а когда включаемые файлы ?
 
при создании в терминале
 
snik_666 >>:
Подскажите что и в каких ситуациях лучше использовать когда библиотеку а когда включаемые файлы ?

Библиотеки стоит использовать если только нет исходников (вызов функций медленный по словам разработчиков).

 

Разница во времени незначительная. Время занимает первый вызов.

По поводу разницы между библиотекой и включаемым файлом.... Это принципиально разные вещи. Также, можно сравнивать ножницы с апельсином применительно к натюрморту.

Включаемый файл это просто часть кода. Для удобства и читаемости кода выделенная в отдельный файл. Библиотека это набор функций.

Функции библиотеки необходимо импортировать. Вот здесь уже есть разница и есть, что сравнивать. Как производить импорт? Через код импорта конкретных функций в своём коде или с помощью заголовочного файла всех функций?

Предпочитаю второй вариант. Он универсальный.

 
snik_666 >>:
Подскажите что и в каких ситуациях лучше использовать когда библиотеку а когда включаемые файлы ?

Доброго времени суток! Профи себя не считаю, но сталкивался с проблеммой 'позднего связывания' в таком варианте: вызов библиотечной функции из двух и более Советников одновременно приводит к ошибке. Поэтому предпочитаю использовать заголовочные файлы. Т.к. все необходимое вшивается в EX4 файл при компиляции и нет возможности нарваться на ошибки из-за: повреждения\удаления\одновременного вызова несколькими Советниками функций из общей библиотеки.

P.S.Чтоб у вас все было и вам за это ничего не было.

 
Есть ли еще отличия библиотек функций от включаемых файлов, кроме того что включаемый файл - это часть кода, записанный в файл, а библиотека - это набор функций ? Если можно, кто-нибудь опишите подробнее. 
 
Yuriy Vins:
Есть ли еще отличия библиотек функций от включаемых файлов, кроме того что включаемый файл - это часть кода, записанный в файл, а библиотека - это набор функций ? Если можно, кто-нибудь опишите подробнее. 

Библиотека - это скомпилированный набор функций и данных. Выглядит этот набор как обычная двоичная программа MQL с расширением ex5 или ex4. 

Включаемый файл mqh - это исходный код части программы, который как правило также содержит функции и данные. 

Если включаемый файл mqh обозначить директивой #property library, то компилятор преврати его в двоичную библиотеку.

Разница между этими типами в использовании. Обычный файл mqh включается в программу на этапе компиляции. Его коды и данные становятся неделимой частью программы ex5, расположенной в единственном файле. С библиотекой сложнее. Ее код (прежде всего функции) доступен из вне. Т.е. это некий (упрощенный) аналог dll, который может вызвать программа ex5. Для чего нужны dll я думаю, объяснять не нужно.

 
Vasiliy Sokolov:

Библиотека - это скомпилированный набор функций и данных. Выглядит этот набор как обычная двоичная программа MQL с расширением ex5 или ex4. 

Включаемый файл mqh - это исходный код части программы, который как правило также содержит функции и данные. 

Если включаемый файл mqh обозначить директивой #property library, то компилятор преврати его в двоичную библиотеку.

Разница между этими типами в использовании. Обычный файл mqh включается в программу на этапе компиляции. Его коды и данные становятся неделимой частью программы ex5, расположенной в единственном файле. С библиотекой сложнее. Ее код (прежде всего функции) доступен из вне. Т.е. это некий (упрощенный) аналог dll, который может вызвать программа ex5. Для чего нужны dll я думаю, объяснять не нужно.

Благодарю 🙏!!!
Причина обращения: