У меня 2 вопроса. Где лучше хранить готовые модули кода? В exe или в dll/so? Это проприетарный код который не будут использовать другие приложения. С одной стороны лучше в исходниках т.к. подгрузка всех функций идет в CT, но с другой стороны это увеличит размер приложения. Это сильно повлияет на скорость его запуска?
Просто какое бы современное приложение не открыл - везде куча dll/so. Не могут же все ошибаться. Значит лучше в dll-ках? Но опять же вопрос стоит боком т.к. Dll может хранить только RT-совместимый функционал и CT функционал при билде на выходе не участвует. В результате в некоторых случаях одна и та же функция будет иметь меньший размер в exe чем в DLL.
Вопрос 2й - почему все их используют если заранее знают что их dll ками никто кроме приложения разработчика пользоваться не будет. Если просто хранить часто используемые данные то как по мне лучше в коде сохранять серилизованные данные, а при необходимости их загружать и десерилезовать. Это поидее и более безопасно, более быстро и по необходимости можно расширить функционал "просто данных"
-
Source code - не может конкурировать c dll однозначно.nick_n_a– nick_n_a2021年05月07日 20:25:43 +00:00Commented 7 мая 2021 в 20:25
-
2. dll могут вполне быть библиотеками сторонних фирм, например opengl, directx для графики, есть для проигрывания видеороликов определённого формата в играх и т д. Библиотеки позволяют делать "оверлей", т.е. если программа большая - загружать и выгружать ненужные куски кода.nick_n_a– nick_n_a2021年05月07日 20:29:44 +00:00Commented 7 мая 2021 в 20:29
-
3. Вашей библиотекой врядли кто-то сможет воспользоваться без документации, разве что у вас будут настолько простые аргументы, что это будет очевидно. Но если на вход идёт структура или это функция класса, то не зная какая у вас структура - выковыривать её врядли кто-то будет. Вообще если это не игра, или не защищенная программа вроде shareware хорошего качества, или программой будут пользоваться там до 100 до 1000 человек - то врядли кто будет ваши exe-dll ковырять вообще.nick_n_a– nick_n_a2021年05月07日 20:31:35 +00:00Commented 7 мая 2021 в 20:31
-
@nick_n_a , я прекрасно понимаю суть динамических библиотек как оверлея, но как я уже писал ранее что в мой dll загоняется код который будет использоваться только одним приложением. С этой стороны как лучше хранить код - в source или в DLL. По поводу 2го вопроса я имел ввиду не библиотеки общего назначения. Если взять какой нибудь более менее серьезную программу, к примеру, для работы с графикой, то в релизных файлах можно увидеть несколько dll файлов которые явно делались под конкретное приложениеWusiki Jeronii– Wusiki Jeronii2021年05月07日 20:44:20 +00:00Commented 7 мая 2021 в 20:44
-
И если смотреть с этой точки зрения то я не вижу разницы между dll и исходным кодом со стороны импорта функций. За исключением из так скажем типа. Даже если пилить dll под конкретное приложение. Dll не будет сам по себе жить. Я создам лоадер, опишу там нужные функции и загружу символы с DLL. Если мы имеем статическую привязку (либо либ, либо соурс) то по факту мы имеем тоже самое. Только функции уже описаны. Только все. Я же не буду сначала делать либ под приложение и брать оттуда только часть функций. Те которые не нужны можно ли перевести на CT, либо в принципе не импортировать на сторонеWusiki Jeronii– Wusiki Jeronii2021年05月07日 20:56:25 +00:00Commented 7 мая 2021 в 20:56
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
Начните задавать вопросы и получать на них ответы
Найдите ответ на свой вопрос, задав его.
Задать вопрос