关于计时器的回调函数

aawolf 2001-07-23 10:36:00
我使用API函数的SetTimer函数调用TimerProc函数的时候,遇到问题。
SetTimer不能编译通过。下边是出错的程序。
TimerID=SetTimer(Handle,1,1000,TimerProc);
//下边是回调函数
//---------------------------------------------------------------------------

void CALLBACK TimerProc(HWND window,UINT message ,UINT idEvent,DWORD dwTimer)
{
Form1->CommonTimerProc();
//自定义函数
}
//----------------------------------------------------------------------------
请问有什么问题?
...全文
267 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
aawolf 2001-07-24
  • 打赏
  • 举报
回复
是是,我是说用VC编译,不是用MFC,不过我还没试过,谢谢了,今天没问题了,回头有问题再问。
xrbeck 2001-07-24
  • 打赏
  • 举报
回复
你有看这本书吗。。好象很不错哦。。呵呵。
应该来说都要吧。。我用过几个都是需要的。不然编译也不过。。
恩。上面的例子应该是用SDK写的吧。。不是VC吧。。
aawolf 2001-07-24
  • 打赏
  • 举报
回复
可为什么我的《WINDOWS程序设计》的例子上并没有强制类型转换呢?上册P312。
所以我想知道BCB和VC在处理回调函数上有什么不同。或者说为什么VC不需要强制类型转换呢?
xrbeck 2001-07-23
  • 打赏
  • 举报
回复
恩。可是编译器怎么知道这个回调函数是这个类型呢。。而不是LONG。。。?呵呵。。
xrbeck 2001-07-23
  • 打赏
  • 举报
回复
对。需要转一下。。不光这个回调函数。其他也一样。。需要给出类型转换。。
aawolf 2001-07-23
  • 打赏
  • 举报
回复
谢了,一切正常了。但请允许我多问几句:按帮助上面说这个变量应该是TimerProc函数的指针,而为什么要变成TIMERPROC结构呢?难道C++BUILDER和VC有什么不一样吗?我手边只有VC的例子。
分数稍后送上,谢谢。
Wingsun 2001-07-23
  • 打赏
  • 举报
回复
强制转化就是了,
TimerID=SetTimer(Handle,1,1000,(TIMERPROC)TimerProc);
aawolf 2001-07-23
  • 打赏
  • 举报
回复
[C++ Error] Unit1.cpp(26): E2034 Cannot convert 'void (__stdcall *)(void *,unsigned int,unsigned int,unsigned long)' to 'int (__stdcall *)()'
[C++ Error] Unit1.cpp(26): E2342 Type mismatch in parameter 'lpTimerFunc' (wanted 'int (__stdcall *)()', got 'void (__stdcall *)(void *,unsigned int,unsigned int,unsigned long)')
Form1是窗体类,我在CommonTimerProc()里写了增加一个变量的语句,为了记数用。
whitelion 2001-07-23
  • 打赏
  • 举报
回复
学习
Erlin 2001-07-23
  • 打赏
  • 举报
回复

报什么错,Form1是什么东西此函数定义的局部变量么?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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