CALLBACK和WINAPI有什么区别?

时间:2019-07-17 08:24:57

标签: windows winapi

我正在通过文档学习winAPI,对此感到有些困惑。在同一示例中,文档使用CALLBACKWINAPI,当我尝试窥视它们的定义时,它们都被定义为__stdcall。如果两个都定义为同一事物,那么仅__stdcall有两个不同的定义有什么意义?

同样值得注意的是,在查看它们的定义时,我还发现了APIPRIVATEPASCAL,它们被定义为__stdcall。重点是什么?我可以只用__stdcall替换这四个定义的每个实例吗?还是有问题?

1 个答案:

答案 0 :(得分:2)

WINAPI是Windows公开给您的API的装饰。

CALLBACK是用于传递给Windows的回调函数的修饰。

__stdcall替换它们只是有问题的,因为您的代码可能被认为足以供其他开发人员使用,他们可以尝试使用gcc,llvm或其他可以针对Windows的编译器,但不能这样做支持__stdcall作为关键字(由于上述推理的次数没有受到挑战,因此可能会作为向后兼容的黑客。)