Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-21776
Карлсон
2002-10-18 18:38
2002.11.07
сколько весит кирпич?


14-21798
Yakudza
2002-10-18 14:31
2002.11.07
Новое приобретение Microsoft


14-21783
Igorenia
2002-10-18 00:25
2002.11.07
необходимо написать развитый help, на подобии тех, которые присут


7-21837
Sherev
2002-09-06 14:21
2002.11.07
Снова COM порт...


4-21885
_Alex_
2002-09-25 21:20
2002.11.07
графика