gpt4 book ai didi

c - WINAPI 代表什么

转载 作者:可可西里 更新时间:2023-11-01 12:43:05 26 4
gpt4 key购买 nike

我已经开始学习 C 语言的 Win32 API。我看到主要功能是这样的

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow) { .. }

但我知道 C 中的函数是这样的

[ReturnType] [FunctionName] (Args) { .. }

在这种情况下,返回类型是 int,函数名称是 WinMain。那么WINAPI代表什么,有必要吗?

谢谢。 :)

最佳答案

它指定了 calling convention ,这就是函数参数在堆栈上的放置和管理方式。

您可以混合调用约定,比如说您正在调用一些外部代码,例如 Windows API,只要每个人都在他们期望的同一“页面”上。

典型的 c 调用是使用所谓的 cdecl 编译的。在 cdecl 中,调用者清理压入堆栈的参数。

WINAPI,也称为“标准调用”,是指被调用的函数负责清理其参数的堆栈。

MS 编译器会将 _ 作为 cdecl 调用的前缀,而 WINAPI 会在打乱函数名称时获取前导 _ 并在函数名称前添加 @{BYTES-NEEDED}。从上面的链接:

call        _sumExample@8  ;WINAPI
call _someExample ;cdecl

关于c - WINAPI 代表什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13463346/

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