D2D1
是 Win32 中 Direct2D 技术的命名空间。但是我不明白这个名字的词源。 D2D
部分很可能指的是 Direct2D,但是最后一个 1 让我困惑......
还有很多以“1”为后缀的类:IDWriteFactory1
、IDWriteFont1
、IDWriteTextLayout1
等——什么是它们的用途以及与没有后缀的类似对象的区别?
最佳答案
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/