Страница: 1 |
Страница: 1 |
Вопрос: Таймер - с помощью timerSetEvent
Добавлено: 06.05.06 14:49
Автор вопроса: Telishev S | Web-сайт:
Использую вот такой код, а IDE вылетает - не подскажете как подправить?:
Форма:
Private Sub Form_Load()
create_timer
End Sub
Public Sub create_timer()
timID = timeSetEvent(100, 20, AddressOf TimerProc, 1, 0)
End Sub
Модуль:
Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long
Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long
Public timID As Long
Public Function TimerProc(uID, uMsg As Long, dwUser, dw1 As Long)
Form1.Print "Time to die!!"
timeKillEvent timID
End Function
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 06.05.06 15:15
Ну интересно, а на что ты расчитывал?
the lpTimeProc parameter is interpreted as a function pointer with the following signature: void (CALLBACK)(UINT uTimerID, UINT uMsg, [BDWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2);
Номер ответа: 2
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #2
Добавлено: 06.05.06 15:17
ПАрдон, глюк с тегами...
the lpTimeProc parameter is interpreted as a function pointer with the following signature: void (CALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2);
В общем, добавь еще один параметр и объяви ВСЕ как long
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 06.05.06 17:59
Может лучше SetTimer/KillTimer которые с kernel32 экспортируются? Я могу пример дать...
Номер ответа: 4
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #4
Добавлено: 06.05.06 22:02
Насколько я знаю timeSetEvent обладает бОльшей точностью срабатывания, нежели SetTimer.
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 07.05.06 19:42
насчёт этого незнаю... но я много раз пользовался SetTimer - срабатывал точно по расписанию хотя я конечно доли секунд не замерял, мне и не особо надо было...
Номер ответа: 6
Автор ответа:
Fever
Вопросов: 60
Ответов: 808
Профиль | | #6
Добавлено: 11.05.06 14:12
Я знаю. SetTimer работает на BEATах, а timeSetEvent на MSECах
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 11.05.06 18:49
а чем отличается если соотношение BEAT'a к MSEC'у подогнать?