AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Interfaces in C++

Ein Thema von mirage228 · begonnen am 28. Jun 2004 · letzter Beitrag vom 9. Jul 2004
 
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Interfaces in C++

  Alt 9. Jul 2004, 17:27
Zitat von shmia:
Also gut......
Du hast 2 Interfaces: IPlugIn und IPlugManager.
IPlugin muss von einer Active-X Bibliothek implementiert werden.
IPlugManager wird von deiner Hauptanwendung implementiert.
Die PlugIn-Schnittstelle könne so aussehen:
Delphi-Quellcode:
IPlugIn = interface
  procedure SetExplorer(v:IPlugManager); // damit bekommt dein PlugIn ein Interfacezeiger
                                          // auf die Hauptanwendung mit.
  function GetDescription : Widestring;
  function GetFeatureFlags: Integer;
  ....
end;
Beide Interfaces (IPlugIn und IPlugManager) werden nun in einer TLB abgelegt.
Diese TLB nenne ich hier mal Charlie.
Das Interface IPlugManager gibt es (unter einem anderen Namen) ja schon in deiner Hauptanwendung. Du musst das Interface aus der TLB der Hauptanwendung rausschneiden und in Charlie einfügen.
Sowohl deine Hauptanwendung, als auch jede PlugIn-DLL müssen Charlie einbinden.
Die TLB Charlie übernimmt sozusagen die Aufgabe eines universellen Includefiles, dass von vielen Programmiersprachen (Delphi, C++-Builder, Visual C++, ...) verstanden wird.
Hi shmia,

Danke für deine Antwort.

Ich habe jedoch nicht ganz verstanden, wie das ganze System abläuft.

Nun, in der ActiveX Bibliothek (also in dessen TLB "Charlie") liegt das Interface IPlugin, sowie die Interfaces meiner Anwendung (In deinem Beispiel auch noch der IPlugManager). In meiner Anwendung befindet sich die Implementierung der Interfaces meiner Anwendung.
Die von IPlugin, wie von dir gesagt, in der ActiveX Bibliothek.

Jetzt verstehe ich aber die Aufgaben von IPlugin und IPlugManager nicht ganz, bzw. ich verstehe nicht, wie die Plugin DLL an die Implementierung aus meiner EXE-Datei kommt (bzw. an das korrekte Interface der Implementierung).

Du hast in IPlugin die Möglichkeit das Interface IPlugManager (das, soweit ich verstanden habe, in der Anwendung implementiert wird) zu übergeben. Aber welchen Sinn hat das? Wenn ich in meiner Anwendung dort dem Interface IPlugin (, das ich mit der CoClass aus der ActiveX Bibl. erstellt habe) den Zeiger (hier IPlugManager via SetExplorer) übergebe, ist es doch für die Plugin-DLLs (etc.) nicht verfügbar?!

Ich blicke in dem System noch (leider) nicht ganz durch.

Kannst du mir vielleicht ein weiteres mal helfen?

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz