代码之家  ›  专栏  ›  技术社区  ›  Robben_Ford_Fan_boy

指向COM对象的成员变量指针

  •  1
  • Robben_Ford_Fan_boy  · 技术社区  · 16 年前

    将成员变量指针引用保持到COM对象,并在C++中通过类重新引用是有问题的。

    是否有人知道每次希望a使用com对象时都要调用.createInstance的原因,即每次都要获取新的实例。

    我看不出你为什么要这样做,

    谢谢,

    (不可以接受!!!!)

    3 回复  |  直到 16 年前
        1
  •  2
  •   AndersK    16 年前

    在这种情况下没有一般规则,因为有许多变量决定它是否是一个好主意。

    首先:如果您拥有有问题的COM对象,即拥有源代码并控制它们的使用方式,那么是的,这是完全安全的。

    如果COM对象是第三方COM对象,有时其中的蹩脚代码可能会迫使您在每次使用它们时“创建实例”——出于必要(和自我保护)。

    如果COM对象充当代理对象,则可能需要在每次使用它们时创建它们,因为场景背后有一些东西,即使用同一对象的其他客户端。

    还有更多的情况,但总的来说,这取决于…

        2
  •  5
  •   sharptooth    16 年前

    这取决于你真正想要什么。

    如果每次都需要相同的对象,则必须保留指向它的指针。如果每次(出于任何原因)都需要一个新对象,那么每次都必须创建一个新实例。如果您不在乎保留对象,最好是因为调用 CoCreateInstance() 比较贵。

        3
  •  2
  •   Stephen Nutt    16 年前

    我想说,这取决于COM对象是什么以及如何使用它。通常可以重用ADO连接,但如果将其保留在脏状态,则在重用时可能会遇到奇怪的行为。某些COM对象可能具有重新初始化或清除方法,您可以调用该方法将其重置为清除状态。

    推荐文章