前几天遇到一个奇怪的bug
每当我的程序(正在调试)尝试打开保存对话框时,Delphi 2007 IDE 就会因外部异常而崩溃。我将其缩小到任何包含由 upx 压缩的 exe 的文件夹。
即,如果文件夹中的所有 exe 都是正常/未压缩的,那么一切都很好。但是,如果其中一个 exe 文件已使用 upx 压缩,则当 opendialog 尝试打开该文件夹时 IDE 会崩溃。
我怀疑 Windows shell 加载了 exe 模块(例如显示它的图标)并且 IDE 注意到并尝试加载该 exe 的调试信息并在那时崩溃。
关于如何解决这个问题的任何想法?附上我的测试程序
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
SaveDialog1: TSaveDialog;
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClick(Sender: TObject);
begin
SaveDialog1.Execute()
end;
end.