Текущий архив: 2002.11.07;
Скачать: CL | DM;
Вниз
Привет всем ! Помогите разобраться с DLL . :) Найти похожие ветки
← →
Spartak © (2002-10-23 05:02) [0]Ну приспичело блин мне написать программу где встречаеться работа
с dll, с базам данных, с сетью и ещё кучей тому подобных приколов.
а самый прикол что мне приходиться учиться им как говориться на ходу. Единственое что меня спасает это этот сайт и его обитатели ,
за что конечно им большое Спасибо!!! На все вопросы которые я задавал здесь я получил ответы ( и это круто конечно ). Просьба не думать что я ваще ни чего не знаю. Ну в принципе я учюсь тока !
Так что я думаю что может и на этот вопрос мне ответят ( очень хотелось бы !) : ну вот типа сам вопрос : я сделал DLL засуул в неё форму , потом отобразил ее и т.д А как сделать чтобы передать
этой форме какоето число или слово ну типа form2.label1.caption:="типа круто"; и как потом передать из этой формы его обратно ?
ну короче как сделать чтобы форма в dll была не модальной и тд. ? А ?
З.Ы Мессагами не получаеться !!!
← →
DeadHDD (2002-10-23 05:46) [1]Пиши в DLL"ке функцию, передавай ей параметр Form2.Label1.Caption, обрабатывай и возвращай его.
← →
Dynamit (2002-10-23 08:43) [2]Если грамотно отобразить форму (немодально), то с мессагами проблем не возникает (смотри мой вопрос DLL & Thread) в этом форуме - там поток, созданный в DLL, посылает основному приложению сообщения.
Но наверное с функциями попроще :)
← →
Spartak © (2002-10-23 09:35) [3]DeadHDD
\\ Пиши в DLL"ке функцию, передавай ей параметр \\Form2.Label1.Caption, обрабатывай и возвращай его.
А нельзя ли кодом ? плиз !
← →
Игорь Шевченко © (2002-10-23 10:30) [4]Spartak © (23.10.02 09:35)
Program Files\Borland\Delphi\Demos\*.*
← →
Spartak © (2002-10-23 10:35) [5]УФ !
← →
Diz (2002-10-23 10:59) [6]на www.marcocantu.com можно скачать кучу полезных примеров, в частности и по интересующей тебя теме.
← →
Akim2 (2002-10-23 11:00) [7]При использовании в качестве параметров string не забывай в dpr всех модулей самой dll прописать в разделе
Uses
ShareMem, ... а потом все остальное. Но рпейдется тягать за собой borlndmm.dll. Без этого твоя прога будет валится и dll нормально работать не будет.
Если есть вопросы подробней пиши на мыло. По DLL могу ответить на многое. Сам недавное разбирался довольно глубоко.
← →
Севостьянов Игорь © (2002-10-23 11:35) [8]Akim2 (23.10.02 11:00)
> Сам недавное разбирался довольно глубоко
DLL-ке понравилось, что так довольно глубоко .... Шутка... ;о)
← →
Diz (2002-10-23 11:53) [9]А ShareMem использовать не обязательно. Общая идеология такова: передаваемые в DLL данные (соответственно и возвращаемые ею) должны иметь типы, известные системе (windows в нашем случае), поэтому строки передавать надо как PChar.
← →
Игорь Шевченко © (2002-10-23 12:04) [10]Diz (23.10.02 11:53)
> Общая идеология такова: передаваемые в DLL данные (соответственно
> и возвращаемые ею) должны иметь типы, известные системе
> (windows в нашем случае), поэтому строки передавать надо
> как PChar.
Бред
← →
Spartak © (2002-10-23 19:58) [11]>Игорь Шевченко
>Бред
извеняюсь конечно но что это у вас любимое слово ? :)
куда ни зайдёшь везде это пишите !
Ну если вы умеете программировать то почему - бы не подсказать
нам - чайникам в программированию ??? вы же тоже когда-то были
таким !!!
← →
[NIKEL] © (2002-10-23 20:03) [12]Сиё есть на самом деле гонево какоето :\
а ваабще DLL надо использовать! а не просто так чтоб сбоку у программы были - это нерационально
← →
Spartak © (2002-10-23 20:17) [13][NIKEL] © (23.10.02 20:03)
//а ваабще DLL надо использовать! а не просто так чтоб сбоку у //программы были - это нерационально
Я с этим полностью согласен ! Ведь для решения подобных задачь
и сделан этот форум !!! Ведь так ?
← →
HiEx (2002-10-24 17:58) [14]В качестве параметров к созданию твоей формы передавай парраметр TForm.Application.
Перед созданием окна подмени TForm.Application dll"ки полученым из EXE"шника (и не забудь при освобождении его восстановить)
=>в этом случае все мессаги будут синхронизированы нормально.
А что касаеться того как иметь доступ к ее компонентам - тебе лучше всего восспользоваться интерфейсами(в твоем случае IXXX = interface(IUncnown)). Если ты в них еще не разбирался, то почитай - тебе понравиться.
← →
Игорь Шевченко © (2002-10-24 18:12) [15]Spartak © (23.10.02 19:58)
Я, когда не знал, книжки читал. Чего и вам рекомендую - rulezz фарева.
А если кто-то высказывает полную чушь, почему бы и не сказать об этом ? :-)
← →
s_alexander (2002-10-25 17:10) [16]> To Игорь Шевченко
Откуда ты взялся умник? Читай тогда книжки и не лезь на форумы. Они для того и придуманы, чтобы узнавать что-то новое.
А бред написан тобой. У тебя здесь три коментария и ни одного дельного.
А Diz написал правильно, создай новую DLL через "File->New->DLL Wizard" и там для умников будет написано для чего нужен ShareMem. Я правда работаю на C++ Builder, но я думаю в Delphi то же самое.
← →
Digitman © (2002-10-25 17:55) [17]>s_alexander
А ты поосторожней, сударь, в оценках !
На категоричное - но необдуманное - заявление <Diz> последовало столь же категоричное - пусть и краткое - возражение <Игорь Шевченко>
Не нравится ? Ты круче ? Возьми и возрази аргументированно : это не "бред", потому что (и т.д.) !
← →
Pit0n (2002-10-25 18:57) [18]Народ, не понял причины спора.. Кто на свете всех вУмнее?
SPARTAK: Если DLL будет работать только с твоей программой, то используй Sharemem и не в чем себя не ограничивай. Дельфи сделает все за тебя.
Если пишешь отдельную DLL которая будет использоваться не только твоей программой, написанной на Дельфи, но например на каком-нибудь С, которая не понимает наших типов, то в качестве входящих/исходящих типов используй стандартные типы WIndows-программировния ну типа PCHAR, BOOL и прочее. Преобразования в "привычный" тип используй в теле функций.
Теперь по существу:
А зачем тебе форма в ДЛЛ? Говорят что самое правильное решение - самое простое. А нужен ли тебе этот от геморрой?
Может проще фреймов понаделать в самомм exe-шнике и создавайть их и убивать, чем искать handle у контролов и слать им сообщения или еще хуже писать отдельные/ую функцию для заполнения?
Если мало времени, IMHO наверно ты выбрал не самый легкий путь.
PS Я не самый умный и книжки читаю редко.
← →
ILYA1 (2002-10-25 19:22) [19]Я тоже начинающий, точнее программирую от случая к случаю.
1й случай был, когда директивa PROGRAMM была обязательна
2й когда ТР5.0 вышел
3й когда GUI типа Windows придумали
4й сейчас, пока 5ку изучал уже 7-ка вышла :))))
Вот у меня тоже передаются String"и в DDL. Хотя для этого в USER ShareMem должен быть прописан, и BORLNDMM.DLL таскать надо за собой, но у меня все и так прекрасно работает без ShareMem и BORLNDMM.DLL.
Хотелось бы знать почему? Может быть из-за того что значения String"ов у меня короче 256 символов и Delphi неявным образом преодразует их в ShortString.
С уважением Илья.
Страницы: 1 вся ветка
Текущий архив: 2002.11.07;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.016 c