7,762
社区成员
发帖
与我相关
我的任务
分享
'模块
Option Explicit
'
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 lmmCount As Double
Public lTimeID As Long '定义用于接收函数返回值的变量
Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, ByVal dw1 As Long, ByVal dw2 As Long) 'timeSetEvent的回调函数
lmmCount = lmmCount + 0.01
Form1.Caption = lmmCount
End Sub
Sub BeginCount() '开始
lTimeID = timeSetEvent(10, 0, AddressOf TimeProc, 1, 1) '定义用于接收函数返回值的变量
End Sub
Sub EndCount() '停止
timeKillEvent lTimeID
End Sub
‘
窗口:
Private Sub Command1_Click()
Text1.Text = "1"
BeginCount
End Sub
Private Sub Text1_Change()
Dim S As Integer
If Text1.Text = "1" And lmmCount > 5 Then S = 9 Else S = 0
Debug.Print S
EndCount
End Sub
Private Sub Text1_Change()
Timer1.Enabled = False
Timer1.Interval = 5000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
If Text1.Text = "1" Then MsgBox "s = 9"
End Sub
#include <time.h>
#include <stdlib.h>
#include <windows.h>
int main() {
int a,b[11];//本来是b[10],为判断哪句越界,故意声明为b[11]
srand((unsigned int)time(NULL));//按两次F11,等黄色右箭头指向本行时,调试、新建断点、新建数据断点,地址:&b[10],字节计数:4,确定。
while (1) {//按F5,会停在下面某句,此时a的值为10,b[10]已经被修改为对应0..4之一。
b[(a=rand()%11)]=0;
Sleep(100);
b[(a=rand()%11)]=1;
Sleep(100);
b[(a=rand()%11)]=2;
Sleep(100);
b[(a=rand()%11)]=3;
Sleep(100);
b[(a=rand()%11)]=4;
Sleep(100);
}
return 0;
}