好的,我将给出两个函数示例,使用 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,因此他们可以根据需要进行更改。
关于c++ - 回调函数和常规函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4293509/