Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
ВнизКак передать данные из потока? Найти похожие ветки
← →
Заур (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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c