旧的Scalabium软件的SMDBFltr在 Delphi 11.2 64位中抛出AV,但在32位应用程序中没有。调试指向此行:`
function TSMDBFilterDialog.GetCurrentFilter: string;
var
i: Integer;
begin
Result := '';
if not Assigned(frmFilterDialog) then
Exit;
for i := 0 to frmFilterDialog.lbFilter.Items.Count-1 do
Result := Result + PAnsiString(frmFilterDialog.lbFilter.Items[i].Data)^; {<<-- AV here}
if (Result <> '') then
Result := ' AND ' + Result;
if (Result <> '') then
Result := Copy(Result, 6, Length(Result)-5);
end;
但我不知道哪里出了问题!
它可以在 Delphi 10.4中以32位和64位运行。知道出了什么问题吗?最好的问候弗朗西斯科阿尔瓦拉多
1条答案
按热度按时间de90aj5v1#
感谢AmigoJack和Brian指出了ASLR的问题,感谢Scalabium的Mike Shkolnik的帮助。问题解决了!