用API:timeSetEvent做高精度定时器

「已注销」 2002-05-09 03:06:57
我的代码如下,但出现非法错误,不知何故?
在form1中加两个command和一个text,下面是FORM中的代码
Private Declare Function timeBeginPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Private Declare Function timeEndPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long

Private Sub Command1_Click()
If timeBeginPeriod(40) = 0 Then
lngReturn = timeSetEvent(50, 2, AddressOf timeSetEventProc, 1, 1)
End If
End Sub
Private Sub Command2_Click()
timeEndPeriod (40)
Module1.Stopt
End Sub
下面是在MODULE1中的代码
Option Explicit
Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long,ByVal uResolution As Long, ByVal lpFunction As Any, ByVal dwUser As Long, ByVal uFlags As Long) As Long
Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long
Public js As Long

Public Function timeSetEventProc() As Long
Static js As Long
js = js + 1
Form1.Text1 = js
End Function

Public Sub Stopt()
timeKillEvent lngReturn
End Sub

给分条件:请给个可行的例子。
...全文
156 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2002-05-15
  • 打赏
  • 举报
回复
楼上的,多谢,但他的程序和我的基本一样,结果不行
TechnoFantasy 2002-05-15
  • 打赏
  • 举报
回复
我的文章中的TimeEvent的回调函数同楼上的是一样的呀?难道不能用?
Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, ByVal dw1 As Long, ByVal dw2 As Long)
jyu1221 2002-05-15
  • 打赏
  • 举报
回复
把timeSetEventProc这个函数修改如下就可以了
Public Sub timeSetEventProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, ByVal dw1 As Long, ByVal dw2 As Long)
Static js As Long
js = js + 1
frmtime.Text1 = js
End Sub
TechnoFantasy 2002-05-09
  • 打赏
  • 举报
回复
看下面的文章:
http://www.applevb.com/art/timing.htm
VB高精度计时器编程的讨论,可能对你有帮助
water_j 2002-05-09
  • 打赏
  • 举报
回复
GZ!
「已注销」 2002-05-09
  • 打赏
  • 举报
回复
Public js As Long应该是Public lngReturn as Long 特此纠正。
「已注销」 2002-05-09
  • 打赏
  • 举报
回复
Public js As Long应该是Public js lngReturn Long 特此纠正。

1,485

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧