gpt4 book ai didi

c++ - 为什么我有 __stdcall?

转载 作者:太空狗 更新时间:2023-10-29 23:24:29 24 4
gpt4 key购买 nike

我开始做一些 directX 编程。我正在使用从 Internet 上找到的这个教程。

我只是想知道为什么 CALLBACK 被定义为 _stdcall 以及为什么 WINAPI 也是如此。

我以为在导出将被编译为 dll 的函数时使用了 __stdcall。

但是,由于永远不会导出 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)
{

}

最佳答案

__stdcall 指的是调用约定,不一定与导出函数有关。查看维基百科关于 calling conventions 的文章如果你想了解更多。简而言之,编译器需要知道将参数传递给您的函数的位置,是在堆栈中还是在寄存器中等。

关于c++ - 为什么我有 __stdcall?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1573225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com