![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с DLL [D5, D6, Win95/98, WinME, NT4, Win2k]
Werewolfru © (2002-08-19 11:29:00)Мне нужно вставить функию в DLL, запустить ее, а затем возвратить результат. В DLL Будет запущен непрерывный цикл, и событие будет вызываться по завершению этого цикла. Буду благодарен за любую информацию по работе с DLL.
Werewolfru (2002-08-19 16:46:00) [1]Спасибо, а то программа конечно файлы даунлоадит, но с ней в это время невозможно работать. А вот на счет MSDN - в теории я его знаю, а вот на практике... надо попробовать, мысль интересная.
Digitman (2002-08-19 16:42:00) [2]Да практически в любой литературе, фигурирующей здесь же, в форуме, в кач-ве рекомендаций мастеров ... Полистай архивы форума - наверняка с десяток точных названий наберешь.
Ну и MSDN, разумеется, как ссылка на первоисточник ...
Werewolfru (2002-08-19 16:36:00) [3]Где об этом можно почитать?
Digitman (2002-08-19 16:33:00) [4]Ради "спортивного" же "интереса" оригинальный код за тебя писать я не собираюсь.
Скажу лишь, что единого решения нет, путей реализации - множество и выбот того или иного будет зависеть от механизма взаимодействия между хост-процессом и DLL, выбранного тобой.
Это может быть и оконные сообщения, и обратные вызовы, и системные объекты синхронизации. И дело вовсе не в каких-то там надуманных кем-то "особенностях" взаимодействия хост-процесса и DLL, а именно - в рациональном и эффективном выборе конкретного механизма асинхронного взаимодействия и синхронизации между различными участками кода (где бы эти участки ни находились - в Dll или хост-процессе)
Werewolfru (2002-08-19 16:24:00) [5]Thanks, а все-же, как работать с DLL (ради спортивного интереса)!
Digitman (2002-08-19 16:16:00) [6]Пожалуйста)
см. демо-проект в составе Делфи threads.dpr
он, imho, очень даже ЖИВОЙ и наглядный
Werewolfru (2002-08-19 16:13:00) [7]Со своим кодом я сам разберусь, а ты можешь показать хоть один ЖИВОЙ пример разделения на кодовые потоки?
Digitman (2002-08-19 15:34:00) [8]И как тебе объяснять ? На пальцах ? Изложи свои творческие изыскания (пусть даже и неработающие) в коде - разберем с тобой по каждой твоей строчке с подробными комментариями с моей стороны, если возникнут проблемы
Werewolfru (2002-08-19 15:20:00) [9]Спасибо, попробую, а не обьяснишь, как это грамотнее организовать в моем случае?
Digitman (2002-08-19 14:26:00) [10]Организуй тоже самое в доп.кодовом потоке. Он будет выполняться параллельно с основным и не будет "вешать" твое приложение
Werewolfru (2002-08-19 14:08:00) [11]>Отсюда вытекает вопрос : каким образом, с помощью каких >компонентов и в каком режиме организована у тебя "закачка" ?
Я уже пробовал и через InternetOpenURL, и через DownloadUrl, и даже через NMHTTP, в любом случае прога вешается, может подскажешь как мне быть?
Digitman (2002-08-19 13:43:00) [12]
> не будет ли эта DLL вешать ОСь
Нет, не будет. А вот свой хост-процесс, загрузивший такую вот DLL и вызвавший из нее синхронную блокирующую ф-цию (которая выполняется оч.долго и не реагирует в этот момент ни на что более), ты точно "подвесишь".
Отсюда вытекает вопрос : каким образом, с помощью каких компонентов и в каком режиме организована у тебя "закачка" ?
Werewolfru (2002-08-19 13:31:00) [13]>Ок. Операция "скачивания" в DLL выполняется в осн.код.потоке >или в дополнительном ?
В основном коде, кстати, не будет ли эта DLL вешать ОСь
Digitman (2002-08-19 12:26:00) [14]>Werewolfru
> Происходит скачивание Файла
А если бы не "скачивание Файла", а, скажем, чтение с очень медленного носителя информации (или просто - некая длительная по времени операция) - что-то принципиально меняется, с твоей т.з. ?
Ок. Операция "скачивания" в DLL выполняется в осн.код.потоке или в дополнительном ?
Werewolfru (2002-08-19 12:13:00) [15]Отношение к сетям - Происходит скачивание Файла.
Как только скачивание завершено, DLL должна сообщить об этом основному приложению.
Digitman (2002-08-19 11:56:00) [16]>>событие будет вызываться
Какое событие ? Что под этим подразумевается ?
Какое отношение этио имеет к сетям ?