所以我需要在Excel VB项目中使用SetTimer API,但在执行间隔计时器后,程序会在您尝试运行另一个宏时立即崩溃。即使只是单击Developer选项卡中的宏按钮。代码:
REORGANIZE
KillTimer似乎不是问题。简单地使用SetTimer设置间隔就像一个开关,用于确保不再运行宏(或者如果你尝试的话,它就会崩溃)。我记得看到错误50290 ,如果还有帮助的话。
为什么会如此,如何解决?
顺便说一句,我正在Excel中为学校项目制作蛇游戏。
似乎在Timer设置之后,由于定时器占用了所有线程,所以不会发生任何事情?或者像这样,并且它不会被打断"。
真的,该API应该如何使用?这似乎是一个致命的错误,使它完全没用......
答案 0 :(得分:1)
您正在破坏堆栈,因为您的Test
程序与TimerProc的签名不符。您应该阅读并理解API调用的文档,然后再盲目地使用它们。
您也可以在MSDN上找到SetTimer的文档,就像所有其他WinAPI文档一样。
答案 1 :(得分:1)
timerPorc的原型就是这个
VOID CALLBACK TimerProc(
_In_ HWND hwnd,
_In_ UINT uMsg,
_In_ UINT_PTR idEvent,
_In_ DWORD dwTime
);
可以转换为vb,如下所示
sub Test(byval hWnd as long, byval uMsg as long,byval idIvent as long, byval dwTime as long)
'your code here
end sub