如何在动态加载的包之间访问对象?

How to get access to an object between dynamically loaded packages?

我需要知道使用 BPL 组织的项目中登录用户的用户名和其他数据。也就是说,我需要如何以及在何处声明用户对象及其创建,以及如何在运行时加载包时访问该对象?我没有足够的使用包的经验。

在包中使用对象没有什么特别之处。您只需将定义对象的单元名称添加到要使用对象的单元的uses子句中。

关于这个主题,您真的应该阅读 the documentation。你可能会问更多的问题来澄清你不明白的事情。

在常规应用程序中,对于程序员来说,使用运行时包或全部在单个 exe 中没有区别 您可以更改项目是否使用运行时包,并且您的代码根本不会改变

当你制作一个按需加载 BPL 模块的模块化应用程序时,情况会发生变化,在运行时选择是否加载给定模块,并动态执行(例如,应用程序考虑了插件架构),然后你需要设计自己的策略来处理这个问题

我自己,我以第二种方式工作,我确实有一些主要模块为“插件”提供服务,所以当它们被加载时,它们会在系统中注册自己:用户控制、导航等等