D2D1是Win32中Direct2D技术的名称空间。但是我不明白这个名字的词源。 D2D部分最有可能是指D irect 2D,但是最后1个让我感到困惑...

还有很多带有后缀“ 1”的类:IDWriteFactory1IDWriteFont1IDWriteTextLayout1等-它们的目的是什么,与没有后缀的类似对象有何不同?

最佳答案

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

D2D1名称空间的命名可能类似。它可能已用于版本控制(Direct2D v1?)。也许将来会添加D2D2(Direct2D v2)命名空间,以解决现有Direct2D体系结构中不适合的内容。谁知道呢

08-06 13:54