Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: 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 вся ветка

Текущий архив: 2005.11.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
14-1129023215
БарЛог
2005-10-11 13:33
2005.11.06
Прокси-сервер


2-1129305358
intel
2005-10-14 19:55
2005.11.06
как проверить наличие файла на диске.


4-1125653799
Piero
2005-09-02 13:36
2005.11.06
Сигналы CommPortа


2-1129119784
Del_programmer
2005-10-12 16:23
2005.11.06
Динамика


4-1125582840
Пантелеев Иван
2005-09-01 17:54
2005.11.06
Focus