我开始做一些directX编程.我正在使用我从互联网上找到的这个教程.
我只是想知道为什么CALLBACK被定义为_stdcall以及为什么WINAPI也是如此.
我认为__stdcall是在导出将被编译为dll的函数时使用的.
但是,由于WindowProc和WINAPI永远不会被导出,为什么这些函数被声明为__stdcall?
非常感谢任何建议,
// WindowProc function prototype
LRESULT CALLBACK WindowProc(HWND hWnd,
UINT message,
WPARAM wParam,
LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
}
Run Code Online (Sandbox Code Playgroud)
__stdcall还有助于减少X86架构上的代码大小.而不是每个调用实例恢复堆栈,堆栈在返回之前仅在函数结束时恢复一次.
从DLL导出也可以__cdecl与声明这种方式一样长.例如:wsprintf()不导出为WINAPI.
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |