![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TMemo в DLL [D7, XP]
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]
> поделитесь советом
Поделиться-то не сложно ..
Но объясни для начала, в чем необходимость и/или видимая тобой "прелесть" реализации такой задачи ?