什么是Windows.h中的CALLBACK数据类型?

时间:2017-01-01 15:44:19

标签: windows callback

为什么windows.h中的数据类型有CALLBACK?

如何使用它?

其他数据类型有什么区别?

https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx

1 个答案:

答案 0 :(得分:1)

答案就在您链接到的页面中:

  

CALLBACK,WINAPI和APIENTRY都用于定义函数   __stdcall调用约定。 Windows API中的大多数功能   使用WINAPI声明。您可能希望使用CALLBACK   您实现的回调函数,以帮助将函数标识为   回调函数。

在32位Windows x86计算机上有多个calling conventions,但最常见的两个是stdcall和cdecl。 Windows API中的大多数函数都是stdcall,C标准库中的函数是cdecl。

Windows SDK中的大多数公共函数使用WINAPI定义,而您或库创建的回调函数通常使用CALLBACK定义。它们最终都声明该函数正在使用stdcall调用约定,并且生成的代码是相同的。 CALLBACK定义用于提醒您,程序员,这个特定的函数是一个回调函数。