代码之家  ›  专栏  ›  技术社区  ›  Aram Hăvărneanu

如何在运行时加载COM DLL

  •  1
  • Aram Hăvărneanu  · 技术社区  · 16 年前

    我有一个VB6 COM DLL。我想从C++中使用它。我知道如何登记它,从DLL生成TLB文件,并且在C++中导入它。

    但是,我希望在运行时动态地加载和使用这样的dll,而不必事先知道它们。这可能吗?

    谢谢,

    3 回复  |  直到 16 年前
        1
  •  4
  •   MSalters    16 年前

    是的,但是你需要把问题弄清楚。

    CoCreateInstance 可能)并将其存储在适当的智能指针中。

    IDispatch . 您需要获得已知接口来描述未知接口。这样,就可以在运行时获得未知接口。

        2
  •  2
  •   Vagaus    16 年前

    IMHO,至少需要一些公共接口(这样就知道C++中调用什么)。

    我会这样做:

    1. 定义公共接口(在其自己的DLL/TLB中)

    2. 在一个或多个COM服务器中实现此接口

    3. 在C++端导入这个接口(我们称之为 客户 )

    4. 定义一种通过 程序ID 要在客户端中使用(动态加载)的COM服务器。

    希望这有帮助