Модификация файла стадартной библиотеки

 

В силу причин и обстоятельств, необходимо, желательно, модифицировать исходный файл стандартной библиотеки. После модификации исходного кода, естественно, получается новый, например, класс и т.п. 

Насколько это правомерно в отношении преобразовании кода стандартной библиотеки. Или, клонируя, дорабатываем, присваиваем новое имя и всё правомерно, в данном случае?

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

Или, файлы библиотеки для основной программы, например, для Маркета, необходимо предоставлять в объектном коде? В этом случае, правда, не понятно, как. Ни разу с этим не сталкивался. В МТ5, имею ввиду. :)

Кто может растолковать "непрограммисту" суть о бренности бытия на сей платформе?  :)

 

Не следует модифицировать файлы библиотек, тем более, стандартных.

Если необходимо сделать изменение - надо пронаследовать свой класс от библиотечного, и в нем, в соответствующей функции (лучше, если она виртуальная, но необязательно) внести изменения.

 
Georgiy Merts:

Не следует модифицировать файлы библиотек, тем более, стандартных.

Если необходимо сделать изменение - надо пронаследовать свой класс от библиотечного, и в нем, в соответствующей функции (лучше, если она виртуальная, но необязательно) внести изменения.

Всё это понятно. Но "сказано было" :)

В силу причин и обстоятельств, необходимо, желательно, модифицировать исходный файл стандартной библиотеки.

Обстоятельства, как правило, непреодолимой силы :).

 
Vjacheslav Lapaev:

 клонируя, дорабатываем, присваиваем новое имя и всё правомерно, в данном случае?

Да. СБ отличается от остальных библиотек только тем, что ее пишут и принудительно обновляют разработчики. Если создвать свои mqh через copy/paste/edit, то с ними можно работать аналогично.

Где-то целесообразно copy/paste заменить на наследование. Маркету же вообще ровно до исходников. Главное для него, чтобы был единственный EX5.

 
Vjacheslav Lapaev:

Всё это понятно. Но "сказано было" :)

В силу причин и обстоятельств, необходимо, желательно, модифицировать исходный файл стандартной библиотеки.

Модификация сохранится только до нового билда, потом перезапишется снова стандартной версией.

Т.е. либо нужно полную копию со всеми связанными классами делать отдельно в другую папку, либо как уже заметили, и что намного удобнее, наследоваться от классов СБ.

 
Понятно. Спасибо.
 

Хм. Остался не раскрытым последний вопрос.

Прошу прощения, но не хочется иметь в арсенале "белыЙ пятен"  ... :)

1. После компиляции кода основной программы и кода файлов необходимых библиотек, всё помещается в объектный код созданного приложения *.EX5.

2. Компилируем основную программу. После её запуска в терминале, на основе имеющихся ссылок include на необходимые файлы библиотек, последние компилируются и используются основной программой.


Какой вариант верен в среде терминала МТ5 ?