我正在一个delphi IDE专家,现在为了避免依赖关系问题,我在想重建这个专家作为一个DLL专家,正如其中一个建议answers,现在我的专家(编译为bpl)访问Screen
和Application
全局变量(Delphi IDE的实例),所以我想知道如果我编译我的专家作为一个DLL我仍然可以访问这些变量,我也想知道which are the main differences between a bpl delphi expert and a dll delphi expert?
bpl delphi专家和dll delphi专家之间的差异
4
A
回答
5
我应该将我的向导编译为DLL还是包?无需重新启动 IDE(因此更容易调试),但是它们可以在IDE中创建单位命名冲突 ,从而使包更容易加载和卸载 。 命名向导的单元与另一个加载的设计时包中的单元名称 匹配时发生冲突。在这种情况下, 这两个软件包不能同时加载到 。建议的解决方法 将前缀为“唯一”前缀的所有单位名称 。例如,GExperts的 使用“GX_”作为其单位的名称前缀 。
从this约OTA非常好的来源:GExperts
1
当你访问一个全局变量时,那些全局变量对你的DLL来说是全局的,而不是全局的BDS.exe。我不确定,但我认为你的DLL会有自己的Screen和Application全局变量,如果你链接了Forms和VCL的核心。
那些属于IDE本身的东西是通过Open Tools Api(OTA)访问的。我相信你通常不会在IDE和专家之间共享任何对象,并且如果你想这样做,那将是有问题的。任何你所做的绕过OTA的事情都会容易以奇怪的方式突破,特别是在未来版本的IDE中。
依赖问题当然是不使用基于BPL的包的一个重要原因,但我认为更重要的原因是保持工具内部和IDE内部之间的完全分离。
请记住,DLL目标,如可执行目标,是静态链接的。这是差异的核心。如果您的专家提供的功能仅使用合法的公用文档OTA接口,那么转移到DLL应该没有问题。如果您使用BPL可能的后门黑客,那么我无法进一步为您提供建议。
相关问题
- 1. 如何在delphi中使用FastMM专家(dll)
- 2. 如何从delphi IDE专家中枚举IDE的形式
- 3. 的专家
- 4. 创建一个简单的Delphi IDE专家
- 5. 混合专家
- 6. mysql查询专家?
- 7. 使用Drools专家开发专家系统的想法
- 8. 如何通过专家策略中的专家授权(Rails)
- 9. 剪辑家庭专家系统
- 10. Delphi中的异常和DLL
- 11. TensorFlow上的专家混合
- 12. Perforce - 仅供专家使用?
- 13. 帮助期待/ ExpectJ专家
- 14. 专家系统引擎
- 15. 如何成为MSIL专家?
- 16. Sharepoint 2010独家专栏?
- 17. 在Lambda表达式专家
- 18. 专家系统算法
- 19. prolog专家系统很难
- 20. 吉斯专家问题
- 21. 写程序专家系统?
- 22. 开源专家系统
- 23. 我必须使用什么windows注册表键来安装delphi专家?
- 24. Android和Jess专家系统集成
- 25. Delphi - BPL中的unmangle名称
- 26. 约Delphi和DLL
- 27. Delphi XE找不到BPL
- 28. 如何从IDE专家更改Delphi调试器的“通知语言异常标志”
- 29. htaccess的301希望专家htaccess的
- 30. 成为MySQL专家的最快方法?
一个DLL可以运行包将建成了。 – 2011-05-19 20:07:19