Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TMemo в DLL [D7, XP]


Страницы:   1 2

Novik ©   (2006-11-28 10:38:00) 

Как мне сделать DLL, при вызове,в которой срабатывала бы функция создающая (к примеру) Memo на основной форме приложения (Как написать DLL и как вызывать я разобрался)

В эту функция однозначно что-то надо передавать: хендл формы или указатель на неё. Так вот что именно надо передавать и как это потом использовать не знаю .... поделитесь советом плз ... люди добрые! :)


Novik   (2006-11-29 09:57:00) [21]

тогда как мне реализовать хост приложение??? допустим, что даже сделаем какой-то стандарт для подключения независимых DLL так, как это реализовано, например, с RunDLL.exe. Ведь можно определить что функция вызова должны быть такой-то, параметры должны быть такими и т.д. Для меня самое главное взаимодействие данных DLL между собой и хост приложением.


Сергей М.   (2006-11-29 09:56:00) [22]


> библиотеки, в которых описаны эти классы


Что С++-программа будет делать с Делфи-классом ?
Это же совершенно разные среды программирования ...


Сергей М.   (2006-11-29 09:53:00) [23]


> как же быть с универсальностью DLL?


С "универсальностью"-то как раз все в порядке.

Но ведь ты ведешь речь об "основной форме приложения" как о форме именно Делфи-приложения ! И задуманное тобой тут же теряет смысл, когда хост-приложение не является Делфи-приложением или BCB-приложением ..


Novik   (2006-11-29 09:53:00) [24]

то что это дельфи классы - понятно, но можно же компилить так, что все библиотеки, в которых описаны эти классы "приаттачивались" к основному проекту! В этом и есть вся прелесть, к примеру, однин модуль написан на Delphi, а другой на С++. Зачастую это даже удобно, т.к. некоторые вещи вообще могут отсутствовать в дельфи и присутствовать в других ЯП.


Сергей М.   (2006-11-29 09:49:00) [25]


> а как же быть если, например, человек пишет DLL не на дельфи
> а, например, на каком-нить "нетривиальном" С++


А откуда в "нетривиальном" С++ возьмутся TMemo, TForm, TApplication и иже с ними ?
Это же Делфи-классы ...


Novik   (2006-11-29 09:48:00) [26]

как же быть с универсальностью DLL? т.е. какие требования к компиляции DLL на других ЯП возникают ??? Тем более как я смогу запустить данную программу на машине без предустановленных библиотек (VCL) ??? ругнется же при запуске ....


Novik   (2006-11-29 09:46:00) [27]

Во! так работает! но а как же быть если, например, человек пишет DLL не на дельфи а, например, на каком-нить "нетривиальном" С++


Сергей М.   (2006-11-29 09:43:00) [28]

Пробуй иначе - убери ShareMem и установи опцию BwRTP в св-вах обоих проектов ...


Novik   (2006-11-29 09:39:00) [29]

в секции uses первым указал ShareMem как в приложении так и в dll. на  счет "Build with Run-Time Packages" - ничего в настройках не трогал и компилиться по умолчанию (как оно есть в настройках)


Сергей М.   (2006-11-29 09:36:00) [30]


> сделал


Сначала рассказывай, как сделал - ShareMem ? Build with Run-Time Packages ?


Novik   (2006-11-29 09:33:00) [31]

Ну вот, прочитал, сделал и появляются новые вопросы ...
в некоторых случаях программа при выполнении выдает вот такое добро:
"cannot assign a TFont to a TFont". Как мне с этим бороться ???? Эта ошибка выдается когда я в dll при создании memo указал родителя форму, которая передается по указателю ... если убрать memo.parent то ошибки нет, но и memo на форме не видно, даже если принудительно указать свойство visible в тру. Так же, я  проверял meo наличие как токовой  перебирая components  формы - она создается! Но почему её не видно и почему она выдает такую ошибку ?


Novik   (2006-11-28 15:26:00) [32]

Спасибо, пошел читать!


Сергей М.   (2006-11-28 12:11:00) [33]


> оно то тут каким макаром ?


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


Novik   (2006-11-28 11:59:00) [34]

неа ... точнее, слышал, но оно то тут каким макаром ??? использовать единое адресное пространство ?


Сергей М.   (2006-11-28 11:40:00) [35]

про ShareMem читал ?


Novik   (2006-11-28 11:33:00) [36]

?


Novik   (2006-11-28 10:54:00) [37]

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


Сергей М.   (2006-11-28 10:47:00) [38]


> поделитесь советом


Поделиться-то не сложно ..

Но объясни для начала, в чем необходимость и/или видимая тобой "прелесть" реализации такой задачи ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо