假设我有一个TCar类,它支持接口ICar并且是从TInterfacedObject派生的。
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
type
ICar = interface
['{EF3294ED-7D3B-4B5D-8E10-FA9E406477D2}']
procedure Start;
end;
TCar = class(TInterfacedObject, ICar)
private
procedure Start;
end;
procedure TCar.Start;
begin
WriteLn('Started!');
end;
var
car: ICar;
begin
try
car := TCar.Create;
car.Start;
{ TODO -oUser -cConsole Main : Insert code here }
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
当我在32位模式下调试上面的代码时,我能够介入TCar类的“Start”方法,而且当我将鼠标悬停在car变量上时,我看到它是“TCar(地址)为ICar”但是当我尝试在64位模式下调试此代码时,我无法介入方法“启动”(调试执行只是传递给方法调用下面的下一行而没有插入),我看到“指针(地址)为ICar”当我将鼠标移到汽车变量上时。我究竟做错了什么?在我的项目中,能够介入方法非常重要。
最近在一台干净的机器上安装了Delphi XE8,并且没有安装防病毒软件。