好的,我将给出两个使用
CALLBACK
和常规函数的函数示例。常规功能
int sumExample (int a, int b)
{
return a + b;
}
int main()
{
int = sumExample(1, 3);
cout >> int;
return 0;
}
使用 _stdcall 的函数
int __stdcall sumExample (int a, int b);
有什么区别?
注意:我不确定调用约定是如何工作的,一个例子会有所帮助!
基本上,调用约定指定如何调用函数的实现细节。大多数库使用标准 C 调用约定 -
__cdecl
。然而 WinAPI 期望 __stdcall
。您只需要了解有关调用约定的两件事:它们必须匹配,例如,您不能将隐式为 void(*)(int, int)
的 void(__cdecl *)(int, int)
转换为 void(__stdcall *)(int, int)
,并且默认值为 __cdecl
。 CALLBACK
只是一个 WinAPI #define,以便他们可以根据需要进行更改。
确实不多。 “回调”是一个函数的名称,该函数将传递给另一个函数,当......发生有用的事情时,该函数将“回调它”。不过,它没有理由不能用作常规函数。
回调是传递给另一段代码的函数指针(即地址)。
回调函数的地址通常会传递给常规函数
https://en.wikipedia.org/wiki/Callback_(computer_programming)