我已经用tframe创建了一个dll。 我该如何将它加载到我的应用程序中,我不喜欢使用bpls,我只想发布exe和dll与我的应用程序如何将delphi tframe从dll加载到delphi应用程序
1
A
回答
5
由于BPL是一个DLL,去BPL方式:更容易。
0
它可以完成,但它是一个工作的地狱,让它工作没有错误或内存问题。更糟糕的是,您将在应用程序中使用两个VCL,一个在可执行文件中,另一个在DLL中。你的框架会尝试引用DLL VCL,它将提供与EXE VCL完全不同的信息。特别是在检查全局屏幕和应用程序变量时。
尽管如此,框架只不过是一种特殊的窗口控件,就像窗体一样。你可以从DLL中导出一个函数,它会返回一个TFrame类型的值。你的应用程序可以调用这个函数,从而创建框架,以任何方式使用它,使用所有其他框架。尽管如此,它不会在框架中提供有关附加功能的任何特定信息。
接下来要处理的事情是同步EXE和VCL相关的DLL之间的数据。这不是很漂亮。另外,使用Tab键通过屏幕上的控件选项卡时,您可能会遇到一些问题,因为Tab键将无法在框架外标签。你会注意到更多这样的怪事。
我一直在使用这种方式使用框架的简单应用程序。我和另外两个人花了两个月时间得到了一些工作解决方案,这种解决方案在没有内存泄漏和其他问题的情况下工作得很好。在我们开始这个项目之前,这似乎是一个好主意。之后,我们决定它并不是我们想要的解决方案,所以我们将DLL的代码与可执行代码合并为一个可执行文件。这样更好。
虽然我们确实使用了另一种替代方法。我们开始在mainform中使用webbrowser组件。该DLL将包含一个HTML页面,很好地格式化,以及一些在使用某些特定功能时将被调用的方法。我们在一个简单的测试应用程序中工作,并取得了良好的效果,但随后公司开始了第11章的工作......我的雇主因与某些客户的交易不当而陷入了僵局,给公司带来了巨额债务。因此一个有趣的项目结束了......
相关问题
- 1. 从Delphi应用程序注册Activex DLL
- 2. 将应用程序从Delphi 7移植到Delphi 2007 - dbxint30.dll问题
- 3. 将Delphi应用程序从Delphi 2006升级到2010的问题
- 4. 如何将Delphi Win32资源DLL转换为Delphi macOS应用程序?
- 5. 返回double *从C++ dll到delphi程序
- 6. PowerBuilder应用程序调用Delphi DLL
- 7. C#2010不加载delphi DLL
- 8. 从DLL调用应用程序创建的Delphi DLL
- 9. 如何从我的Delphi应用程序
- 10. 如何将Web服务添加到Delphi 2006应用程序?
- 11. PostMessage从C++ .dll到Delphi Forms应用程序的问题
- 12. 从Delphi的DLL回调到C#应用程序
- 13. Delphi Dll到C#
- 14. 如何将DLL注入到Delphi程序中
- 15. 在java中使用jna加载delphi dll
- 16. Delphi DLL是否预定用于加载程序锁定?
- 17. 我们可以从Delphi 5应用程序调用.net(2.0)dll
- 18. 从C#.NET应用程序调用Delphi DLL
- 19. 如何使用Delphi 6应用程序?
- 20. 在Delphi应用程序中从C++ DLL中回调
- 21. 从Visual C++调用delphi dll
- 22. 从Delphi调用C#dll
- 23. DELPHI应用程序错误与DLL在一个DLL
- 24. 如何国际化Delphi应用程序
- 25. 在Delphi应用程序中访问DLL中加载的TClientDataset的内容
- 26. 在运行时加载dll - Delphi
- 27. 我如何才能找到从Delphi应用程序
- 28. 写作Delphi应用程序
- 29. Delphi SoapServer应用程序
- 30. 如何从非delphi应用程序在任务栏上显示delphi dll进度条
同意。 BPL具有原生VCL支持,而普通DLL不支持。在非BPL DLL边界上传递VCL对象并不是一个好主意。 – 2010-10-21 19:34:59
我尝试了BPL的方式,但它并不像我想的那么容易。其实我需要一个“单个文件包”的方法,这在BPL情况下是不可行的。所以我正在制作DLL插件。 – Paul 2017-02-22 13:24:19