将包含重写虚拟方法的类传递给 dll

发布于 2024-12-06 09:23:34 字数 173 浏览 0 评论 0原文

我有一个应用程序和一个 dll,都是用 Delphi 2006 编写的。

我有一个从基类派生的类,并重写了几个虚拟方法。

该类通过导出方法传递给 DLL,导出方法只知道基类。我从 DLL 中调用类上的方法,但不会调用重写的方法。

我需要做些什么才能让它发挥作用吗?难道这根本不可能吗?

I have an application and a dll, both written in Delphi 2006.

I have an class that descends from a base class and overrides several virtual methods.

The class is passed to the DLL via an exported method, the exported method only knows about the base class. I call the methods on the class from within the DLL the overridden methods are not invoked.

Is there something I need to do to get this to work? is is it simply not possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ι不睡觉的鱼゛ 2024-12-13 09:23:34

您无法在一个模块中创建对象并在不同的模块中调用其方法。我所说的模块是指.exe/.dll。

如果你想像这样跨越界限,那么你需要使用包、COM 或自由函数。包看起来很诱人,但你必须对系统中的所有包使用相同的编译器。如果这对您没有限制,那么请继续使用软件包。否则使用 COM 或自由函数。

You can't create an object in one module and call its methods in a different module. By module I mean .exe/.dll.

If you wish to cross boundaries like this, then you need to use packages, COM or free functions. Packages look alluring but bind you into using the same compiler for all packages in the system. If that is not restrictive to you then go ahead and use packages. Otherwise use COM or free functions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文