Einzelnen Beitrag anzeigen

Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#16

AW: [Delphi/C#] Eigenes PlugIn System übersetzen nach C#

  Alt 17. Feb 2013, 23:22
Allerdings, wie ich bereits schrieb: safecall ist ein bissel besser.
Standardmäßig werden Interface Methoden in .Net per sdtcall mit HResult durch den COM/Interop Layer geschleust.
Dieser Layer wird auch bei P/Invoke (klassische DLLs in .Net) verwendet.
Das entspricht dem was safecall in Delphi macht.
Man lernt immer noch dazu Danke für die detaillierte Beschreibung =)

Ich würde aber Events in 2 Typen aufteilen: Den eigentlichen Event und einen Subscriber:
Delphi-Quellcode:
INotifyEvent = interface(IUnknown)
  ['{EE9407DD-2337-4DFC-BC35-A40C4FA0A1A7}']
  procedure Add(const hanlder: INotifyEventHandler); safecall;
  procedure Remove(const hanlder: INotifyEventHandler); safecall;
end;

INotifyEventHandler = interface(IUnknown)
  ['...']
  procedure Invoke(const sender : IUnknown); safecall;
end;
Das Konzept ist bei Java z.B. gang und gebe.

Ich hatte das auch hier schonmal angeschnitten, aber ich sehe das Bedarf bald einer Überarbeitung
Sebastian
  Mit Zitat antworten Zitat