Главная страница
    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.04 c
9-1118496600
Cerberus
2005-06-11 17:30
2005.11.06
Cоздание RPG


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


6-1122299778
maxwellz
2005-07-25 17:56
2005.11.06
перехват TCP/IP пакетов


3-1127563236
ZSergey
2005-09-24 16:00
2005.11.06
Как получить значение поля ...


3-1127518866
TechnoDreamer
2005-09-24 03:41
2005.11.06
Структура базы - подскажите.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский