【问题标题】:How to use C++ Classes exported by a dll in Delphi如何在 Delphi 中使用由 dll 导出的 C++ 类
【发布时间】:2009-09-30 06:00:51
【问题描述】:

有没有办法在Delphi 中为win32 使用由win32 dll 导出的C++ 类?有没有其他方法来归档类似的东西(COM、.NET、...)?

【问题讨论】:

    标签: c++ delphi dll


    【解决方案1】:

    您不能导入类。您只能导入函数。 Rudy Velthuis has written at length on the topic. 虽然不能直接使用导出的 C++ 类,但他描述了几种实现相同效果的技术:

    • “展平”对象,因此在调用方不再有对象,只是传递给 DLL 的指针以及用于包装对象方法的一系列函数的其他参数。编写包装器非常简单,虽然可能很乏味。

    • 使用纯虚拟类。 Windows C++ 编译器和 Delphi 通常具有相同的 VMT 布局,因此如果 C++ 类可以由纯虚方法列表来描述,您可以创建等效的 Delphi 声明,使用 DLL 返回的对象指针进行一些类型转换,然后继续。

    文章中给出了这两种方式的完整示例。

    【讨论】:

      【解决方案2】:

      据我所知,在 Delphi 中,您不能使用从 DLL 导出的 C++ 类;您可以使用 C 函数,也可以将 COM 类导入 Delphi。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-25
        • 1970-01-01
        • 1970-01-01
        • 2016-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多