Страница 1 из 1

Из программы запустить несколько копиий dll

Добавлено: 27 апр 2005, 23:14
nixon
Пишу программу закачки файлов на фтп сервер.
Состоит из Dll+exe. Всю работу выполняет Dll.
Дано:
1. Библеотека dll с набором функций и одной главной, которая
вызывает все остальные попорядку. Главная функция -
экспортируеться.
2. Программа вызывающая главную функцию Dll.

Вопрос:
При запуске программы выполняеться запуск только одной копии Dll.
И форма нериально зависает до окончания выполнения функций Dll.
Как потоками одновременно запустить несколько Dll?
Что бы парельно можно было отправлять несколько файлов.
Как в regetDelux.
Только не говорите просто что нужно испоьзовать потоками. Поконкретней. Спасибо!

Добавлено: 30 апр 2005, 12:09
Naeel Maqsudov
Несколько копий DLL можно загрузить с помошью функции LoadLibrary. Только Вам это не поможет!!! Абсолютно.

Чтобы что-то выполнялось параллельно действительно нужно просто пользоваться потоками. :)

Поконкретней это компоненты типа TThread.
Добавьте его, опишите обработчик события OnExecute. И запускайте один или несколько фоновых процессов.
Можно текже посмотреть исходники TThread и научиться пользоваться функциями WinAPI которые как раз все это и делают. (Новый поток (нить) запускается по CreateThread.)

На самом деле нет ничего лучше готового примера. В стандартную поставку Delphi входят примеры. Там всегда был пример "соревнования" между несколькими алгоритмами сортировки. Там в разных потоках делают сортировку изначально одинаковых случайных наборов чисел - "кто быстрее".