Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
1-68694
.
2002-10-10 20:09
2002.10.21
inttohex, floattohex


1-68864
Феликс
2002-10-10 14:43
2002.10.21
Что же делать? Как мне быть?


4-69057
Asteroid
2002-09-04 22:47
2002.10.21
Полупрозраченые окна


1-68827
Magic
2002-10-10 10:31
2002.10.21
Мониторинг системы


1-68860
Пончик
2002-10-10 11:33
2002.10.21
FrontPage





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