![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Подскажите как лучше обменеваться данными между DLL и программой.
DLL - хук клавиатуры WH_KEYBOARD, помимо хука, DLL буферит считанные данные в TList типизированные поинтеры, которые содержат данные о нажатых символах (скан код, виртуальный код, таймаут, состояния шифтов/альтов/контролов). Тестовая программа крутит поток, который вызывает динамически подключенные процедуры из DLL, которые возвращают состояния DLL: - занята/не занята, - есть данные в буфере/нет данных - возврат буфера - очистка буфера Нормально ли это, или для постоянного получения/опрашивания данных DLL лучше реализовать по другому работу с DLL? |
#2
|
||||
|
||||
![]() поток совсем не обязательно крутить - много холостого хода получается. можно, к примеру, посылать уведомляющие сообщения окну программы. хэндл окна передать библиотеке в самом начале.
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Нагрузку поток не делает так как запущен с самым низким приоритетом, + в нем Sleep(1);
Окна у потока нет. Поток крутиться в подклассе не визуальной компоненты которая формирует события. Это лишь маленький кусочек громадного проекта. |
#4
|
||||
|
||||
![]() -но все-таки он крутится в холостую большую часть времени)
-я не говорил про окно потока - имел в виду главное окно программы. даже если в программе вообще нет окна, то его можно создать через AllocateHWnd, к примеру -поток убрать вообще Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 24.04.2012 в 12:03. |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
rutony (24.04.2012)
|
#5
|
|||
|
|||
![]() Спасибо, переделал, работает лучше
|