1

好的,我将给出两个函数正在使用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);

有什么区别?
注意:我不确定调用约定是如何工作的,举个例子会有所帮助!

4

2 回答 2

2

不多,真的。“回调”是给一个函数的名称,该函数将传递给另一个函数,当......发生有用的事情时,它将“回调”它。尽管如此,它也没有理由不能用作常规功能。

于 2010-11-27T19:38:44.980 回答
2

基本上,调用约定指定如何调用函数的实现细节。大多数库使用标准 C 调用约定 - __cdecl. 然而,WinAPI 期望__stdcall. 您只需要了解有关调用约定的两件事:它们必须匹配,例如,您不能将void(*)(int, int)隐含的 a转换void(__cdecl *)(int, int)为 a void(__stdcall *)(int, int),并且默认值为__cdeclCALLBACK只是一个 WinAPI #define 以便他们可以根据需要进行更改。

于 2010-11-27T19:46:22.717 回答