关于CALLBACK的疑问

zmcomputer 2010-03-02 03:41:58
看到有这样一句void CALLBACK TimerProc (HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
CALLBACK是什么呢?函数吗?怎么函数名后面还有TimerProc,我不明白void CALLBACK TimerProc 到底是什么意思?怎么有两个函数名?
...全文
139 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jerry4805971 2010-03-03
  • 打赏
  • 举报
回复
回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则DLL一调用它就会引起程序或系统的崩溃。通常情况下,回调函数采用标准WindowsAPI的调用方式,即__stdcall,当然,DLL编制者可以自己定义调用方式,但客户程序也必须遵守相同的规定。在__stdcall方式下,函数的参数按从右到左的顺序压入堆栈,除了明确指明是指针或引用外,参数都按值传递,函数返回之前自己负责把参数从堆栈中弹出。
jerry4805971 2010-03-03
  • 打赏
  • 举报
回复
CALLBACK是回调函数的声明
wshcdr 2010-03-03
  • 打赏
  • 举报
回复
CALLBACK是个宏,是为了让参数的作用一目了然
WizardK 2010-03-02
  • 打赏
  • 举报
回复
void CALLBACK TimerProc (HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
void:函数返回值
CALLBACK:__stdcall,这个宏定义说明他是作为回调函数
TimerProc:函数名
bragi523 2010-03-02
  • 打赏
  • 举报
回复
CALLBACK是个宏,表示堆栈调用约定,TimerProc是函数名
ziplj 2010-03-02
  • 打赏
  • 举报
回复
感觉这样名字好看一点
ziplj 2010-03-02
  • 打赏
  • 举报
回复
CALLBACK是一个类型 是_stdcall的调用约定 至于什么是调用约定 自己Google一下吧
另外 CALLBACK还起到了说明这个函数是回调函数的作用

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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