![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 30.10.2010
Сообщений: 14
|
![]()
Пытался реализовать таймер в DLL,все бы было хорошо,если бы еще и работала функция KillTimer.Версия компилятора указа в заголовке.Вот собственно код:
Код:
Вот что получилось из тестов: 1)Дескриптор окна находит правильно. 2)Попытка поместить функцию KillTimer внутрь someFunc результатов не принесла. 3)Попытка сделать второй идентификатор функций SetTimer и KillTimer как глобальную проинициализированную переменную результатов не принесла. 4)Более того,если ставить KillTimer перед SetTimer,даже в этом случае напрочь отказывается работать(( Перечитал все темы ,которые только смог найти на этом форуме,долго и упорно гуглил,но увы безрезультатно(( |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
как вы определили, что она не работает? что хотите-то сделать?
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а что вы хотели сделать?
вы создали таймер и сразу же его убили, смысл? и кстати, при указании хендла окна не нужно указывать функцию обратного вызова для таймера, только чтото одно. и если вам в ДЛЛ нужно подобие таймера то вам полюбому нужно создавать поток, и в нем можно в принципе через sleep таймерится. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 30.10.2010
Сообщений: 14
|
![]()
Как оказалось формально эта функция работает(последний код ошибки ,возвращенный GetLastError равен 2),но тем неменее конкретных действий не выполняет.На данный момент изучаю возможности внедрения соей DLL в чужой процесс.
По моей логике здесь при запуске процесса(и соответственно моей DLL) через 7 секунд должен был сработать таймер,вывести MessageBox один раз и выключиться.Но,на практике таймер не выключается,тоесть окошко MessageBox выводится стабильно каждые 7 секунд.Запись выключения таймера в саму функцию someFunc результатов так же не принесла. Как реализовать таймер без функции я к сожалению не знаю,так как если я правильно понял WM_TIMER должен находиться в обработчике сообщений приложения,доступа к которому у меня нет по понятным причинам. С потоками я пока ещё не общался,но спасибо за идею.Как только разберусь с реализацией таймера в отдельном потоке, сообщу о результатах. Мой вариант таймера в отдельном процессе не работает,сильно не заморачивался.Решил не рвать гланды через жопу и сделать все на слипах) Спасибо за идею ,Пепел Феникса. Но если кто нибудь разберется почему не срабатывало,буду благодарен)) Последний раз редактировалось RFbager; 05.12.2010 в 07:53. Причина: Дополнение. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
не выключается потому что срабатывает создание таймера с колбэком(somefunc).
а что написано в справке по этому поводу насчет параметра id?а?)) а вот что написано, что при создании таймера для callback функции, параметр id(второй) игнорируется, и в итоге нужно сохранять то что вернет SetTimer, это значение затем и идет в KillTimer. Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++ Builder KillTimer() | coNsept | C++ Builder | 11 | 30.08.2010 23:05 |
TP7 чтение из файла, работает но не работает!? | Qousio | Помощь студентам | 7 | 02.06.2009 09:37 |
Библиотека НЕ работает с 2008, но работает с 2000 SQL | namenike | Общие вопросы C/C++ | 0 | 26.05.2009 11:04 |
SetTimer, KillTimer | NeiL | Win Api | 5 | 05.03.2008 07:37 |