Форум: "Сети";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];
ВнизРабота с 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c