如何从DLL返回实例?

时间:2009-10-20 19:08:22

标签: delphi winapi dll object

我正在编写DLL。我必须将TBitmap的实例返回给宿主应用程序。 DLL有另一个UNIT,它是一个Form,它有一个用于存储图像的TImageList。我写了一个函数,我想从TImageList返回一个Image(从DLL到主机应用程序。我该怎么做?

谢谢, Yulién。

4 个答案:

答案 0 :(得分:4)

在borland.public.delphi.nativeapi上阅读这个旧帖子:Delphi Object in DLL - does this work?

上一条消息中.pdf的链接已消失,但多亏了Internet Archive Wayback Machine,可以download it(查看从DLL导出对象,第412页)。 / p>

编辑:事实证明,为了我们的目的,本书的有趣部分也可以在Google图书上找到,one can read it on-line

答案 1 :(得分:2)

基本上你需要做的是不返回一个对象。在这种情况下你想要返回位图,为什么不返回HBitmap句柄?

答案 2 :(得分:0)

对象是代码和数据的组合。普通的DLL不支持它,因为它只支持C应用程序二进制接口(C ABI),但有一种DLL可以:BPL文件。换句话说,您需要创建.bpl文件而不是.dll文件。当然,这要求该文件和用户都是Delphi。

答案 3 :(得分:-3)

您不能返回对象本身,但可以返回指向对象的指针。请参阅Mastering Delphi 6和此description of Vtables in delphi

相关问题