好的我会给出两个函数示例: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);
有什么区别?
注意:我不确定调用约定是如何工作的,一个例子会有所帮助!
答案 0 :(得分:2)
不多,真的。 “回调”是一个给予函数的名称,该函数将被传递给另一个函数,当......发生一些有用的事情时,它将“回调”它。没有理由它也不能用作常规功能。
答案 1 :(得分:2)
基本上,调用约定指定了如何调用函数的实现细节。大多数库使用标准C调用约定 - __cdecl
。但是,WinAPI需要__stdcall
。您只需要了解有关调用约定的两件事:它们必须匹配,例如,您无法将void(*)(int, int)
(隐含地为void(__cdecl *)(int, int)
)转换为void(__stdcall *)(int, int)
,并且默认值为__cdecl
。 CALLBACK
只是一个WinAPI #define,以便他们可以根据需要进行更改。