E2179 Im OLE-Automatisierungsbereich sind nur register-Aufrufkonventionen zulässig (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Sie haben eine unzulässige Aufrufkonvention für eine Methode festgelegt, die im Abschnitt automated einer Klassendeklaration erscheint.


program Produce;

  type
    Base = class
    automated
      procedure Method; cdecl;
    end;

  procedure Base.Method; cdecl;
  begin
  end;

begin
end.

Die Sprachenspezifikation lässt im OLE-Automatisierungsabschnitt keine Aufrufkonventionen außer register zu. Im obigen Quelltext lautet die betreffende Anweisung 'cdecl'.


program Solve;

  type
    Base = class
    automated
      procedure Method; register;
      procedure Method2;
    end;

  procedure Base.Method; register;
  begin
  end;

  procedure Base.Method2;
  begin
  end;

begin
end.

Für diesen Fehler gibt es drei Lösungsmöglichkeiten. Erstens: Es werden kein Aufrufkonventionen für Methoden festgelegt, die in einem Automatisierungsabschnitt deklariert sind. Zweitens: Es wird nur die register-Aufrufkonvention festgelegt. Drittens: Die betreffende Deklaration wird aus dem Automatisierungsabschnitt entfernt.