Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
spiritus Гость
|
Добавлено: Вс Мар 07 2004 18:02 Заголовок сообщения: Независимое окно в DLL |
|
|
Как сделать так, чтобы в выполняемой процедуре из DLL бесконечный цикл типа Repeat until true; віполнялся после запуска независимо от запущенного (Основного) приложения.
(т.е. не ждёт когда закончится цикл а продолжает работать). |
|
Вернуться к началу |
|
|
Jazz Гость
|
Добавлено: Пн Мар 08 2004 02:22 Заголовок сообщения: |
|
|
Пусть эта функция создает thread. в котором будет выполняться цикл
вечный while. CreateThread + CtrlF1. Читайте маны, господа! И будете жить вечно в сердцах юзеров! |
|
Вернуться к началу |
|
|
spiritus Гость
|
Добавлено: Чт Мар 11 2004 23:32 Заголовок сообщения: Всё о томже |
|
|
Да в том-то и дело, что создал поток. Поместил в поток вечній цикл.
Это всё запихнул в DLL.
Присоединяю динамически DLL.
Запускаю процедуру из присоединённой DLL. И пока эта процедура не выполнится (поток там внутри, не поток... ) всё остальное отдыхает...
Что в этом случае делать? |
|
Вернуться к началу |
|
|
Jazz Гость
|
Добавлено: Пт Мар 12 2004 03:40 Заголовок сообщения: А с этого момента, пожалуйста, поподробнее... |
|
|
Или объясни подробнее чего ты добиваешься или, еще лучше, выдай основные куски кода (там где создаешь поток, как это выглядит в длл и как вызываешь длл функцию). Ибо дочерний поток не должен зависить от родителя. А если хочешь, залазь в аську. Онлайн инетрактив типа руллл... 307-118-821! |
|
Вернуться к началу |
|
|
spiritus Гость
|
Добавлено: Пт Мар 12 2004 22:01 Заголовок сообщения: Всё о томже |
|
|
Проблема вот в том, что Вы наверное подразумеваете о создании потока в родительском приложении и из потока запускать DLL процедуру.
- Да, это прокатит.
В моём случае получается вот как.
Есть уже откомпиленое приложение. Оно подключает DLL и процедуру в ней.
Запускает процедуру. И вся идея в том, чтобы в эту DLL запихнуть процедуру, которая бы запускалась как обычно, но...
--- при выходе оставляла после себя запущенным окно или какой-
нибудь цикл условно бесконечный (можно это назвать отдельный поток)
(и не тормозила б на точке своего выполнения основную программу)
(одним словом: DLL процедура быстро отработала и создала независимый процесс)
(только не предлагайте из DLL запускать скомпиленный ЕХЕ файл...) |
|
Вернуться к началу |
|
|
Jazz Гость
|
Добавлено: Сб Мар 13 2004 00:41 Заголовок сообщения: И я про то же... |
|
|
Если у нас есть функция из DLL:
//Динамическое связывание
(void*) pFuncFormDll = GetProcAddress(hLib,"FuncFromDll");
........
А сама функция определена в DLL, как:
//------------------------------------------------------------------------
DWORD WINAPI ThreadFunc(LPVOID lpvData)
{
while(true)
{
//Actions!
}
return 0;
}
//------------------------------------------------------------------------
... FuncFromDll(...)
{
DWORD DThread=CreateThread(NULL,0,&ThreadFunc,0,0,&TID);
}
//------------------------------------------------------------------------
То за одно обращение к FuncFromDll, ты создашь один поток с бесконечным циклом, который будет независим и от родительского окна и от DLL. |
|
Вернуться к началу |
|
|
|