gpt4 book ai didi

winapi - 为什么 WinAPI 与 "normal"C 如此不同?

转载 作者:行者123 更新时间:2023-12-04 16:22:42 25 4
gpt4 key购买 nike

我想知道为什么 WinAPI 与“普通”C 编程有如此大的不同?

我的意思是,在学校我了解到每个 C 程序都有一个 main() 函数(WinAPI 使用带有一些特殊参数的 WinMain),一些变量类型,如 int、long、char 等(WinAPI 使用 LPCSTR、BOOL 等)那么为什么 Microsoft 决定对他们的 OS API 采取如此不同的方式呢?

当我看到我的第一个 WinAPI 程序时,它对我来说更像是一种新语言......;)

最佳答案

最初的 Windows API 是在 25 年前的 1984-85 时间框架内设计的。匈牙利表示法风靡一时,因此将变量的类型放入声明中是要做的事情。例如,在纯 C 中,没有办法指示“远”指针,这是 LPCSTR 中的 LP 所指示的,但在 1985 年,区分常规指针和远指针非常重要。 (当 32 位窗口在 90 年代中期接管时,这种重要性就被搁置了,但语法仍然存在......)

此外,C 并没有真正区分指向字符的指针和指向静态字符串的指针。因此 lpsz 类型。

最后,它是关于为参数带来比 1984 年允许的纯 C 更强大、更一致的类型。至于 WinMain,这是因为 Windows 程序与命令行程序有着根本的不同。如果您查看库,您可能会找到一个 main() 函数,该函数设置参数,然后调用外部 WinMain 函数(即您的)。

关于winapi - 为什么 WinAPI 与 "normal"C 如此不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1833794/

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