1

インターフェイス ICar をサポートし、TInterfacedObject から派生したクラス TCar があるとします。

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」にステップ インできます。さらに、車の変数の上にマウスを置くと、「TCar(address) as ICar」であることがわかりますが、このコードを 64 ビット モードでデバッグしようとすると、"Start" メソッドにステップ インできず (デバッグ実行は、ステップ インせずにメソッド呼び出しの下の次の行に渡されるだけです)、移動すると "Pointer(address) as ICar" と表示されます車の変数の上にマウスを置きます。私は何を間違っていますか?メソッドにステップインできることは、私のプロジェクトでは非常に重要です。

最近、Delphi XE8 がクリーン マシンにインストールされましたが、アンチウイルスはインストールされていません。

4

0 に答える 0