我创建了一些delphi组件,它们包含在一个bpl文件中。最近我注意到构建bpl(安装了bpl)会使IDE崩溃,异常" MyComponents.bpl_unloaded"。但是如果没有安装bpl,这个问题就不会发生。我无法捕捉到这个异常,我不知道它在哪里引发(手动我不会调用unloadlibrary或其他人)。
在运行时和disigntime中,我的所有组件都能正常工作。 ProjectGroup可能只包含我的包或带有/不带组件的项目,但情况相同。 在我的项目中,我使用其他vcl组件(使用Vcl.StdCtrls,Vcl.ExtCtrls,Vcl.Controls,Vcl.Forms,Vcl.AppEvnts,Vcl.Imaging.Jpeg,Vcl.Graphics)。 在包文件部分"要求"包含rtl,vcl,vclimg,VirtualTreesR,Jcl。
如何更正此问题? 提前谢谢
答案 0 :(得分:4)
在IDE中安装设计时软件包时,必须在重新构建它时卸载它。必须首先卸载它,然后重新构建,然后重新加载。
显然,卸载阶段会导致异常被引发。我们无法准确说出为什么会引发异常,但下一步是进行一些调试。它实际上可以调试IDE。您可以打开IDE的第二个实例,并从第一个实例将调试器附加到第二个IDE实例。然后,您可以从第二个IDE实例卸载软件包,如果您已正确设置它,则应该在引发异常时中断。
作为交互式调试的替代方法,您可以使用像madExcept这样的工具在异常点生成详细的堆栈跟踪。仅此一点就足以引导您解决问题。