winapi - "1"中的 "D2D1"代表什么?

标签 winapi direct2d

D2D1 是 Win32 中 Direct2D 技术的命名空间。但是我不明白这个名字的词源。 D2D 部分很可能指的是 Direct2D,但是最后一个 1 让我困惑......

还有很多以“1”为后缀的类:IDWriteFactory1IDWriteFont1IDWriteTextLayout1等——什么是它们的用途以及与没有后缀的类似对象的区别?

最佳答案

COM 接口(interface)通常以递增的数字命名,以允许版本控制。一旦 COM 接口(interface)公开发布,COM 规则就规定该接口(interface)不得再进行更改,否则将破坏与现有代码的兼容性。如果需要添加新功能,则必须公开新接口(interface)。我们以IDWriteFactory1 为例。今天,这是第一个发布的界面。将来,也许会添加 IDWriteFactory2,用新方法扩展 IDWriteFactory1。现有代码将被保留,因为它们对 IDWriteFactory2 一无所知,但新代码可以创建一个 IDWriteFactory1 对象并查询它以查看它是否支持 IDWriteFactory2 如果是这样,则根据需要使用较新的方法。

D2D1 命名空间的命名可能类似。它可能用于版本控制目的(Direct2D v1?)。也许将来会添加一个 D2D2 (Direct2D v2) 命名空间来处理不适合现有 Direct2D 架构的内容。谁知道呢。

关于winapi - "1"中的 "D2D1"代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16021949/

相关文章:

c++ - 为什么我可以在没有调用 CoInitializeEx 的情况下调用 StringFromCLSID?

winapi - 如何强制 GetQueuedCompletionStatus() 立即返回?

c++ - 跨 DLL 边界使用 Direct2D

c++ - RenderTarget->GetSize 不工作

c++ - 使用 Direct2D 在非客户区绘制

c# - Direct2D/GDI+ 和缓慢的 Windows 窗体绘图 - 可以做什么?

c - 在 Windows 中,如何创建子进程并捕获其标准输入、标准输出和标准错误,而不复制任何可继承的句柄?

c++ - 如何在 Windows 上获取进程工作目录?

windows - 如何使用特定的图形驱动程序创建 OpenGL 上下文?

directx - 在 SharpDx 中保存为 png