Windows API函数 它们是标准代码C还是C++代码?它们是什么?

Windows API函数 它们是标准代码C还是C++代码?它们是什么?,windows,winapi,Windows,Winapi,标准的Windows API是一个C库。其他语言(C++等)也有包装器 请继续阅读。如果您使用纯Windows API编程,它们是标准C代码 一个基于C++的包装器是可用的。 所有这些都是为了支持而推出的。Windows API是语言中立的。它既不是C也不是C++。微软说Windows本身主要是用C++编写的,但是对于大多数API,你不需要任何类,甚至API中的类(例如直接X)也可以在没有类的纯C中使用。 尽管一些C程序员认为它是一个C库,但编程语言的编译器必须支持专有的Windows调用模型,

标准的Windows API是一个C库。其他语言(C++等)也有包装器


请继续阅读。

如果您使用纯Windows API编程,它们是标准C代码

一个基于C++的包装器是可用的。


所有这些都是为了支持而推出的。

Windows API是语言中立的。它既不是C也不是C++。微软说Windows本身主要是用C++编写的,但是对于大多数API,你不需要任何类,甚至API中的类(例如直接X)也可以在没有类的纯C中使用。
尽管一些C程序员认为它是一个C库,但编程语言的编译器必须支持专有的Windows调用模型,这不是一个经典的C调用约定。(很明显,现在几乎每个现实世界的C编译器都支持它。)

原始的Win32 API是基于C的。然而,Windows中有大量基于COM的服务。好的例子有剪贴板、拖放、shell、用户模式驱动程序框架、DirectX。虽然从技术上讲,用C语言编写COM代码是可行的,但这样做是非常痛苦的


事实上,你在那里使用C++。一个C++类库,使原来的基于C的API更少痛苦,尤其是对于GUI代码。

Windows API使用“代码>”的方法,并没有取消它作为C库的资格。有几种流行的调用约定正在使用,甚至在C编译器中也是如此(或者,至少有;在20年内情况有很大的变化)。你是对的,它是语言中立的,从某种意义上说,它可以从任何语言中使用,但纯裸机Windows API编程是直接的C语言,尽管有一些特定于Microsoft的扩展。“Microsoft说Windows本身主要是用C++编写的。”我想引用一下,因为我很自信,声明是错误的,而MS从来没有这么说过。”戴维:几个网站引用比尔盖茨的观点,Windows主要是用C++编写的。但是我从来没有看到过这个来源,所以它可能是某种骗局。”A. KEPP:显示在2000,它是90% C,其中一些C++在I/TrNord和Explorer /SHIL32(这不是完整的树,不确定有多少来源泄漏)(AL @安德斯确实如此)!Windows中的任何C++都很可能在外层中找到。这里的赌注是内核没有C++,完全是C/Scuto+.1,尽管我不得不说,我嘲笑说Windows API正在逐步淘汰,有利于.NETFramework。很多.NET Framework只是托管代码中实现的同一API的包装器。它还没死呢!这纯粹是出于对知识的好奇,还是你有更具体的想法?如果是这样的话,如果你能为你的问题提供更多的背景,我们也许能给出更好的答案。这是一个奇怪的问题。正如科迪所说,如果你解释了问题背后的动机,你可能会得到更好的答案。基本上,尽管你不需要知道。Windows API是一个不透明的接口。您只需调用它,而不必担心界面另一端的内容。你只需要知道它是做什么的,而不是它是怎么做的。嗨,当我听说“睡眠”这个词不是一个标准功能时,我把它和Capital的“睡眠”混淆了。在我的编译器上,“sleep”是未知函数。剪贴板和D&D也有较旧的C接口(但它们缺少一些功能,如剪贴板的多格式支持等)