曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3994|回复: 0
打印 上一主题 下一主题

WINAPI 与 CALLBACK

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2013-7-12 12:15:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在有些函数前面会看到 WINAPI 字样,如 int WINAPI WinMain(...) 。这里的 WINAPI 是一个函数说明符,它是一个 Windows 定义的宏,将使系统以特定于 Windows API 函数的某种特殊的方式处理函数名和实参。这种方式与 C++ 通常处理函数的方式不同。具体的细节不重要 --- 这只不过是 Windows 所要求的方式而已,因此只需要将 WINAPI 宏名称放在 Windows 调用的函数名前即可。

但是可以通过查看 Visual C++ 提供的文档,我们可以看到,WINAPI 被定义为 __stdcall ,将此修饰符置于函数名之前表明使用的是标准的 Windows 调用约定。这要求参数以相反的顺序被推入栈,被调用函数结束时清除栈。

同样的,CALLBACK 修饰符也被定义为 __stdcall ,因此是与 WINAPI 等价的。

标准 C++ 调用约定由 __cdecl 修饰符指定。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-4-29 10:54 , Processed in 0.066207 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表