Winapi库有名称空间



作为一个C#程序员,我已经熟悉了在.NET Framework库中使用名称空间的协议。

我想知道,因为Winapi是在 c 中实现的,这是一种具有命名空间的非管理编程语言,如果Winapi库,例如 user32 > kernel32 也有名称空间?

编辑:我完全知道 c不包含名称空间。我向我的问题印象深刻,即Winapi库与它旨在与。

Windows API严格地将其视为C接口。C中没有名称空间。如果您需要访问API,则必须:

  • 包括声明函数的适当标头文件。
  • 链接到实施它的导入库。

该文档告诉您两个标题都包括哪个标题以及要链接到哪个库(如果有(。


update (更改了问题之后(:

从您看来的评论中,您正在询问,某些Windows API实现是否内部使用名称空间。好吧,我不知道,我不在乎。你也没有。无论答案是什么,您无能为力。

让我们暂时假设,kernel32.dll是在C 中实现的,并使用名称空间。为了维持C接口,没有任何名称空间信息出现在API表面。这留下了名称空间仅供内部使用。如果内部使用它们,一旦链接器解决了符号,则所有命名空间的痕迹将丢失。(这些符号可能出现在私人调试符号,甚至是公共调试符号中,以及用于rtti的字符串文字。这些都不允许您做任何有意义的事情,除了查看它们外。(

尽管同时具有C和C 实现,但Winapi库没有名称空间,因为它们旨在与C接口C-一种不支持名称空间的语言。

<</p>

最新更新