169 похожих чатов

Добрый вечер! Изучаю книгу "Адаптивный код". В ней приводится пример

добавления библиотеки классов (C# и Visual Studio) в качестве зависимости у консольного приложения. Причём библиотека классов и консольное приложение это разные проекты, объединённые в одно "Решение" (типо "Группа проектов" в Lazarus и Delphi, насколько я понял).

В Lazarus аналогом библиотеки классов является общая библиотека (shared library). Какие есть варианты создания зависимости у проекта консольного приложения к проекту общей библиотеки? Пока в голову приходит только создание пакета.

31 ответов

48 просмотров
Kirill-Filippenok Автор вопроса

MessagePrinter - библиотека классов SimpleDependency - консольное приложение

О сколько нам открытий чудных, готовить просвещения дух... Почитай лучше про планировщик процессов у Багеля. Вот это круть. Это не выполнение задач по расписанию. Это например зависимость процессов. Очень круто. До сих пор вспоминаю... а уж столько лет прошло.

Зачем ты хочешь себе геморрой создать?

Kirill-Filippenok Автор вопроса
Hemul GM
Зачем ты хочешь себе геморрой создать?

Учусь создавать приложения, адаптирующиеся к изменениям

Kirill Filippenok
Учусь создавать приложения, адаптирующиеся к измен...

Эм. И мы думаешь "зависимость" - это повышение адаптации к изменениям?

Hemul GM
Эм. И мы думаешь "зависимость" - это повышение ада...

При грамотно выбранной "точке сборки", имеет место быть.

Kirill-Filippenok Автор вопроса
Hemul GM
Эм. И мы думаешь "зависимость" - это повышение ада...

Гэри Маклин Холл (автор книги) пишет что необходимо правильно составлять зависимости. Я буквально на первом примере застрял. Тут описывается взаимодействие Клиента (консольного приложения) и Службы (библиотеки классов)

Kirill Filippenok
Гэри Маклин Холл (автор книги) пишет что необходим...

При этом он не говорит, что эти зависимости - это хорошо

Kirill-Filippenok Автор вопроса
Hemul GM
При этом он не говорит, что эти зависимости - это ...

Он говорит что без зависимостей не обойтись

Kirill-Filippenok Автор вопроса

Пока накопал про Delphi packages. Они вроде как умеют так же классы экспортировать

Kirill-Filippenok Автор вопроса
Hemul GM
Ну нахера тебе это надо?

Да я сам пока не знаю, я только начал изучать

Hemul GM
Ну нахера тебе это надо?

Ген, ну че ты колючки разбрасываешь для ищущего знания? Ты тоже только на чужих ошибках и опыте учился? "Дай человеку попрогать" © :)

Ed Doc
Ген, ну че ты колючки разбрасываешь для ищущего зн...

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

Ed Doc
ты покажи и отойди :) Зачем пинать?

Ну я и показал, там - говно, вон там - норм дорога

Kirill-Filippenok Автор вопроса
Hemul GM
Ну я и показал, там - говно, вон там - норм дорога

А интерфейс у вас описан вне библиотеки? И как вы его потом освобождаете?

Рекомендую при разработке отдавать приоритет потребностям, а не возможностям. То есть тебе надо сделать программку на 10 формочек, то делай как умеешь. Когда у тебя будет 100 формочек и постоянные доработки и перетасовки функционала, тогда потребность в модульности возникнет сама собой.

Kirill Filippenok
А интерфейс у вас описан вне библиотеки? И как вы ...

Интерфейс сам освободит память, если использовать его как обычно

Kirill-Filippenok Автор вопроса
Hemul GM
Интерфейс сам освободит память, если использовать ...

То есть когда ссылки на него закончатся?

Kirill Filippenok
А интерфейс у вас описан вне библиотеки? И как вы ...

Начни читать. Если ты работаешь с интерфейсом, как с IInterface, он сам себя освободит, когда счетчик в 0 перейдет.

Sergey Bodrov
Рекомендую при разработке отдавать приоритет потре...

В данном случае, 100 формочек - тоже не оправдывает модульность. А вот, если часть формочек может быть не нужна вообще, тогда да

Kirill Filippenok
То есть когда ссылки на него закончатся?

Да. Счетчик ссылок работает и "снаружи"

Hemul GM
В данном случае, 100 формочек - тоже не оправдывае...

Да можно и формы создавать по шаблону на лету. Если они все почти одинаковые.

Kirill-Filippenok Автор вопроса
Hemul GM
Интерфейс сам освободит память, если использовать ...

А интерфейс у вас описан вне библиотеки? Чтобы можно было с ним взаимодействовать

Kirill Filippenok
А интерфейс у вас описан вне библиотеки? Чтобы мож...

Интерфейс ты можешь описать где хочешь. Хоть скопировать. Главное, чтоб совпадали сигнатуры

Hemul GM
Интерфейс ты можешь описать где хочешь. Хоть скопи...

поэтому интерфейсы удобно использовать когда нужно работать с совсем разными классами. можно один и тот же интерфейс реализовать в двух классах у которых нет общих предков и обращаться к интерфейсам однообразно. собственно как раз в VCL/FMX так и есть: классы полностью разные но реализуют одинаковый интерфейс и этого достаточно

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Коллеги, я тут для личных нужд пошел ставить MQTT сервер, пощупал mosquitto, но ужаснулся отсутствию такой банальности, как HTTP API для посмотреть список топиков. А тут что,...
Maksim Lapshin
9
#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Точно, оно. У тебя там имена потоков выставляются?
Александр (Rouse_) Багель
11
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
Карта сайта