从父级调用应用程序创建的 Delphi DLL

发布于 2024-09-15 20:12:06 字数 193 浏览 7 评论 0原文

我有一个应用程序,我调用一个 DLL 函数来创建并返回一个表单。当我尝试将此新表单作为应用程序中主表单的父级时,出现了一大堆错误。

这是一个常见的错误/问题,还是在这种情况下养育子女没有问题。

据我所知,在 DLL 调用中创建的表单不属于该应用程序。有没有办法让新创建的表单属于应用程序。

谢谢你, 蒂姆

I have an application that I make a call to a DLL function that creates and returns a form. I get a whole bunch of errors when I try to parent this new form to the main form in the application.

Is that a common error / problem or is there not an issue with parenting in this case.

And as far as I have learned a form created in a DLL call doesn't belong to the application. Is there a way to make the newly created form belong to the application.

Thank you,
Tim

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

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

发布评论

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

评论(3

泡沫很甜 2024-09-22 20:12:06

使用相同版本的delphi编译器和相同的运行时包编译您的dll和exe。
同样在 dll 中,不要在表单创建函数上使用任何调用约定,例如 stdcall 或 cdecl。
它会像魅力一样发挥作用。

compile your dll and exe with the same version of delphi compiler with the same runtime packages.
also in dll do not use any calling convension like stdcall or cdecl on your form-creating-function.
it will work like a charm.

若相惜即相离 2024-09-22 20:12:06

不要在 DLL 内使用 VCL。这样你就会遇到各种各样的问题。如果您绝对需要拥有创建 VCL 组件或其他 GUI 部分的动态包,请使用 BPL 等。以下是两者的简短摘要:

  1. BPL 与 DLL
  2. Stack overflow 问题

还有其他方法。现在的主要问题是为什么要在 DLL 中创建表单,这真的需要吗?

Do not use VCL inside DLLs. You will encounter all kind of problems this way. If you absolutely need to have dynamic packages that create VCL components or other GUI parts, use BPLs for instance. Here is a short sumary of both:

  1. BPL vs. DLL
  2. Stack oveflow question

There are other aproaches. Now the main question is why do you create a form inside DLL and is that really needed?

山川志 2024-09-22 20:12:06

您的 dll 和 exe 必须在同一版本的 RAD Studio 中编译,并且两者都必须使用运行时包。

Your dll and exe must be compiled in same version of RAD Studio and both must use runtime packages.

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