mague Posted November 15, 2009 Share Posted November 15, 2009 (edited) Hallo, ich versuche gerade anhand der Sourcen von myprograms.dll die plugin Programmierung zu zerpfluecken. Ziel ist es das Ganze in eine andere Sprache umzusetzen um vom kommerziellen Delphi loszukommen. Wie eine DLL funktioniert ist mir inzwischen klar. Naechster Schritt ist also die Initialisierung des plugin. function InitPlugin2: IDVBViewerPlugin; stdcall; {export;} begin if myplug = nil then myplug := TBasePlugin.Create; result := myplug; end; Ich habe mal mit TBasePlugin angefangen und mich durch die einzelnen sourcen durchgehangelt. Object-hell sozusagen *seufz* Frueher war ja wirklich alles besser UPlugin.pas: TBasePlugin = class(TBaseOSDSetupPlugin) uplugininterfaces.pas: TBaseOSDSetupPlugin = class(TBaseOSDPlugin, iPlugin) uplugininterfaces.pas: TBaseOSDPlugin = class(TBaseDVBViewerPlugin, iOSDPlugin) uplugininterfaces.pas: TBaseDVBViewerPlugin = class(TObject, IDVBViewerPlugin) TObject ? Es endet bei TObject. Ich gehe davon aus diese ist im VCL definiert ?! Gibt es dazu mehr Informationen ? Gerne auch Links um zu verstehen was TObject ist. Wenn ich von TObject nicht wegkomme bin ich auf FreePascal begrenzt, wuerde mir aber gerne noch die Option auf andere Sprachen erhalten. Auch konnte ich bei den interfaces einige Definitionen nicht finden. Ahh.. ich sehe Delphi nimmts mit der Gross-kleinschreibung nicht so genau iPlugin und IPlugin ist wohl das selbe.... Muss ich sonst noch was wissen ? Edited November 15, 2009 by mague Quote Link to comment
hackbart Posted November 15, 2009 Share Posted November 15, 2009 TObject ist nicht Zwingend Notwendig und ist quasi die "Mutter aller Klassen", definiert ist sie in Delphi und Freepascal in der System.pas. Eigentlich braucht es nur die Interfaces da diese für die Ansteuerung zwingend vorrausgesetzt werden. Christian Quote Link to comment
mague Posted November 15, 2009 Author Share Posted November 15, 2009 Danke erstmal. Jetzt habe ich 3+ Stunden Delphi nach FreePascal manuell angepasst. Das ist dann schon frustrierend wenn man dann merkt das FreePascal kein TListView.ItemIndex kann Und die error Liste des Parsers ist noch lang Jetzt suche ich erstmal den kuerzesten/einfachsten Weg ein plugin zu registrieren. Am besten einen Eintrag in ein OSD Menue schreiben. Da kann ich die GUI units erstmal beiseite lassen. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.