Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.21;
Скачать: CL | DM;

Вниз

Работа с DLL   Найти похожие ветки 

 
Werewolfru ©   (2002-08-19 11:29) [0]

Мне нужно вставить функию в DLL, запустить ее, а затем возвратить результат. В DLL Будет запущен непрерывный цикл, и событие будет вызываться по завершению этого цикла. Буду благодарен за любую информацию по работе с DLL.


 
Digitman ©   (2002-08-19 11:56) [1]

>>событие будет вызываться

Какое событие ? Что под этим подразумевается ?

Какое отношение этио имеет к сетям ?


 
Werewolfru ©   (2002-08-19 12:13) [2]

Отношение к сетям - Происходит скачивание Файла.

Как только скачивание завершено, DLL должна сообщить об этом основному приложению.


 
Digitman ©   (2002-08-19 12:26) [3]

>Werewolfru


> Происходит скачивание Файла


А если бы не "скачивание Файла", а, скажем, чтение с очень медленного носителя информации (или просто - некая длительная по времени операция) - что-то принципиально меняется, с твоей т.з. ?

Ок. Операция "скачивания" в DLL выполняется в осн.код.потоке или в дополнительном ?


 
Werewolfru ©   (2002-08-19 13:31) [4]

>Ок. Операция "скачивания" в DLL выполняется в осн.код.потоке >или в дополнительном ?

В основном коде, кстати, не будет ли эта DLL вешать ОСь


 
Digitman ©   (2002-08-19 13:43) [5]


> не будет ли эта DLL вешать ОСь


Нет, не будет. А вот свой хост-процесс, загрузивший такую вот DLL и вызвавший из нее синхронную блокирующую ф-цию (которая выполняется оч.долго и не реагирует в этот момент ни на что более), ты точно "подвесишь".

Отсюда вытекает вопрос : каким образом, с помощью каких компонентов и в каком режиме организована у тебя "закачка" ?


 
Werewolfru ©   (2002-08-19 14:08) [6]

>Отсюда вытекает вопрос : каким образом, с помощью каких >компонентов и в каком режиме организована у тебя "закачка" ?

Я уже пробовал и через InternetOpenURL, и через DownloadUrl, и даже через NMHTTP, в любом случае прога вешается, может подскажешь как мне быть?


 
Digitman ©   (2002-08-19 14:26) [7]

Организуй тоже самое в доп.кодовом потоке. Он будет выполняться параллельно с основным и не будет "вешать" твое приложение


 
Werewolfru ©   (2002-08-19 15:20) [8]

Спасибо, попробую, а не обьяснишь, как это грамотнее организовать в моем случае?


 
Digitman ©   (2002-08-19 15:34) [9]

И как тебе объяснять ? На пальцах ? Изложи свои творческие изыскания (пусть даже и неработающие) в коде - разберем с тобой по каждой твоей строчке с подробными комментариями с моей стороны, если возникнут проблемы


 
Werewolfru ©   (2002-08-19 16:13) [10]

Со своим кодом я сам разберусь, а ты можешь показать хоть один ЖИВОЙ пример разделения на кодовые потоки?


 
Digitman ©   (2002-08-19 16:16) [11]

Пожалуйста)

см. демо-проект в составе Делфи threads.dpr

он, imho, очень даже ЖИВОЙ и наглядный


 
Werewolfru ©   (2002-08-19 16:24) [12]

Thanks, а все-же, как работать с DLL (ради спортивного интереса)!


 
Digitman ©   (2002-08-19 16:33) [13]

Ради "спортивного" же "интереса" оригинальный код за тебя писать я не собираюсь.
Скажу лишь, что единого решения нет, путей реализации - множество и выбот того или иного будет зависеть от механизма взаимодействия между хост-процессом и DLL, выбранного тобой.

Это может быть и оконные сообщения, и обратные вызовы, и системные объекты синхронизации. И дело вовсе не в каких-то там надуманных кем-то "особенностях" взаимодействия хост-процесса и DLL, а именно - в рациональном и эффективном выборе конкретного механизма асинхронного взаимодействия и синхронизации между различными участками кода (где бы эти участки ни находились - в Dll или хост-процессе)


 
Werewolfru ©   (2002-08-19 16:36) [14]

Где об этом можно почитать?


 
Digitman ©   (2002-08-19 16:42) [15]

Да практически в любой литературе, фигурирующей здесь же, в форуме, в кач-ве рекомендаций мастеров ... Полистай архивы форума - наверняка с десяток точных названий наберешь.
Ну и MSDN, разумеется, как ссылка на первоисточник ...


 
Werewolfru ©   (2002-08-19 16:46) [16]

Спасибо, а то программа конечно файлы даунлоадит, но с ней в это время невозможно работать. А вот на счет MSDN - в теории я его знаю, а вот на практике... надо попробовать, мысль интересная.



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

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

Наверх




Память: 0.5 MB
Время: 0.021 c
4-69064
dumb
2002-09-06 07:51
2002.10.21
High CPU usage


1-68708
Igorenius
2002-10-11 02:33
2002.10.21
Как правильно определить разрешение экрана??


14-69005
Shadow
2002-09-26 16:01
2002.10.21
А правда, что программисты вспыльчивые люди?


1-68856
JeffMill
2002-10-10 15:03
2002.10.21
работа с отчетами


3-68661
саша
2002-09-27 14:44
2002.10.21
Пмогите с сортировкой.