Вниз
Скачать: CL | DM;

Как передать данные из потока?   Найти похожие ветки 

 
Заур   (2005-10-15 12:07) [0]

Здравствуйте уважаемые эксперты!
Вопрос такой: Имеется поток, который отслеживает изменения в файлах (создание, удаление, модификация и.т.п).
Поток я запускаю в маленькой программе, написанной на Win-Api, и программа у меня "сидит" в трее. Мне нужно передать некий список файлов который я получаю в потоке  в Listbox
формы, которую я загружаю из DLL. Другими словами как мне передать данные из Exe приложения в DLL?
В момент огда поток будет работать у меня DLL может быть не загружена!, поэтому я думал может в файл записывать и оттуда читать. Или же как то в памяти хранить, а потом когда DLL загрузится прочитать. Помогите пожалуйста...


 
Eraser ©   (2005-10-15 12:16) [1]


> Заур   (15.10.05 12:07)

>  Другими словами как мне передать данные из Exe приложения
> в DLL?

Приложение (процесс) в данном случае один и тот же. Передавай данные например через Callback ф-ю, советую использовать PChar.

> В момент когда поток будет работать у меня DLL может быть
> не загружена!

Так загрузи.
___
Зачем вообще форму в отдельной dll хранить? Сомнительная экономия ресурсов.
Основная программа использует модуль Forms?


 
Заур   (2005-10-15 13:25) [2]

Форму я храню в Dll для экономии ресурсов (я так полагаю это увеличит скорость работы моей программы), а основная программа использует модуль Forms! А примерчик этой CallBack функции Вы не могли бы показать...


 
Eraser ©   (2005-10-15 13:34) [3]


> Заур   (15.10.05 13:25) [2]

> а основная программа использует модуль Forms!

Вся экономия - насмарку, гы!
Немного сэкономить можно, создавая форму динамически, а затем её освобождая, но для этого не нужно никаких ДЛЛ.
Ещё вопрос
"Как передать данные из потока?"
имеется ввиду основной (первичный) поток или свой создавал, дополнительный?


> А примерчик этой CallBack функции Вы не могли бы показать.
> ..


// объявляем тип
type
 TcbOnMsgReceive = procedure(pchFromIP: PChar;
   AParams, AData: PChar; AParamsSize, ADataSize: integer); stdCall;
...
// объявляем переменую
var
 cbOnMsgReceive:  TFarProc; //(TcbOnMsgReceive;)
...
// определяем переменую
cbOnMsgReceive := AcbOnMsgReceive; // где AcbOnMsgReceive есть рабочая ф-я
// вызываем ф-ю
   if cbOnMsgReceive <> nil then
     TcbOnMsgReceive(cbOnMsgReceive)(PChar(sFromIP),
       bufParams, bufData, msParams.Size, msData.size);



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.031 c
6-1121698752
rOOse
2005-07-18 18:59
2005.11.06
Скачивание файла


1-1129474977
wp2
2005-10-16 19:02
2005.11.06
Обработка событий для элементов, которые находятся в динамическом


10-1089952677
menart
2004-07-16 08:37
2005.11.06
Outlook &amp; Delphi


4-1125837051
lexales
2005-09-04 16:30
2005.11.06
Перехват событий Explorer


6-1122493829
Михаил(Киров)
2005-07-27 23:50
2005.11.06
Sockets




   Наверх