繁体   English   中英

如何在Delphi中使用dll导出的C ++类

[英]How to use C++ Classes exported by a dll in Delphi

有没有一种方法可以将Delphi中的Win32 dll导出的C ++类用于Win32? 还有其他方法来归档类似的东西(COM,.NET等)吗?

您无法导入课程。 您只能导入功能。 Rudy Velthuis就该主题作了详尽的论述。 尽管您不能直接使用导出的C ++类,但他描述了几种实现相同效果的技术:

  • 将对象“平整”,因此在调用方不再有对象,只有一个指针以及与包装该对象的方法的一系列函数的其他参数一起传递给DLL。 编写包装程序非常简单,尽管可能很乏味。

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

文章中提供了两种方法的完整示例。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM