Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.043 c
14-1129617966
syte_ser78
2005-10-18 10:46
2005.11.06
помогите составить техзадание


2-1129316258
Тест
2005-10-14 22:57
2005.11.06
Memo


14-1129540166
КаПиБаРа
2005-10-17 13:09
2005.11.06
Пути файлов в текстовый файл


4-1125749990
NikNet
2005-09-03 16:19
2005.11.06
Предворительная проверка процесса!


9-1118349447
Кефир87
2005-06-10 00:37
2005.11.06
Collision check -> Sphere vs World -> Реализация





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский