AGB  ·  Datenschutz  ·  Impressum  







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

Verborgenes TLB-Interface definieren

Ein Thema von tgoessi · begonnen am 1. Jun 2005 · letzter Beitrag vom 6. Jun 2005
Antwort Antwort
tgoessi

Registriert seit: 31. Mai 2005
34 Beiträge
 
Delphi 5 Enterprise
 
#1

Verborgenes TLB-Interface definieren

  Alt 1. Jun 2005, 12:20
Hallo

Wie kann ich über die TLB ein Interface definieren, welches in der DLL nicht sichtbar ist?

Es geht darum, eine DLL als Schnittstelle zu definieren. Die DLL enthält ein Objekt mit einer Dispatch-Schnittstelle. Diese ist öffentlich und soll anderen Anwendungen zur Verfügung gestellt werden.
Die DLL enthält ein 2. Objekt, welches ich nur von meiner Anwendung her mit Daten füttere. Dazu habe ich eine weitere Schnittstelle des Typs IUnknown definiert, welche allerdings verdeckt, d.h. von externen Nutzern der DLL nicht einsehbar sein soll.
D.h. im Prinzip, jeder externe Nutzer kann die 2. Schnittstelle, wenn er weiss, wie sie lautet und wie sie benutzt wird, sonst soll sie verborgen sein.

Ist das möglich und wie?

Danke für Antworten
Tom
  Mit Zitat antworten Zitat
Benutzerbild von BenBE
BenBE

Registriert seit: 3. Apr 2005
Ort: Jahnsdorf
48 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: Verborgenes TLB-Interface definieren

  Alt 1. Jun 2005, 14:14
Du kannst AFAIK die TLBs auch per Hand bearbeiten. Da brauchst Du dann nur dieses zweite Interface aus dieser Definition entfernen. Da ich aber noch nicht genauer mit Interfaces gearbeitet habe, kann ich zur Vorgehensweise aber nichts Genaueres sagen.
Benny Baumann
Je komplexer das System, desto kleiner die Fehler; je kleiner die Fehler, desto häufiger ihr Auftreten!
  Mit Zitat antworten Zitat
tgoessi

Registriert seit: 31. Mai 2005
34 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Verborgenes TLB-Interface definieren

  Alt 3. Jun 2005, 09:06
Das versteh ich jetzt nicht so ganz.
Wenn doch das Interface weg ist, ist doch auch ein Zugriff über die Schnittstelle nicht mehr möglich.
Oder funzt das mit einem private Interface?

Tom

Zitat von BenBE:
Du kannst AFAIK die TLBs auch per Hand bearbeiten. Da brauchst Du dann nur dieses zweite Interface aus dieser Definition entfernen. Da ich aber noch nicht genauer mit Interfaces gearbeitet habe, kann ich zur Vorgehensweise aber nichts Genaueres sagen.
  Mit Zitat antworten Zitat
Benutzerbild von BenBE
BenBE

Registriert seit: 3. Apr 2005
Ort: Jahnsdorf
48 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Verborgenes TLB-Interface definieren

  Alt 3. Jun 2005, 13:41
AFAIK sind die TLBsnur dazu da, um die Interface-Struktur global bekannt zu geben, d.h. zu sagen, wie die Procedure-Tables und ähnliches aufgebaut sind. Wenn Du das selber für deine Klasse weißt, sollten sich keine Probleme für Dich ergeben. Wenn andere dieses Interface aber nicht kennen sollen, kannst Du dessen Definition weglassen und jeder, der nicht die Gesamtstruktur kennt, kann nicht darauf zugreifen.

Aber wie gesagt: Hab selber mit COM noch nicht großartig gearbeitet.
Benny Baumann
Je komplexer das System, desto kleiner die Fehler; je kleiner die Fehler, desto häufiger ihr Auftreten!
  Mit Zitat antworten Zitat
tgoessi

Registriert seit: 31. Mai 2005
34 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Verborgenes TLB-Interface definieren

  Alt 6. Jun 2005, 11:10
Habe es mal probiert, aber irgendie geht es nicht.
Wenn ich das Interface aus der TLB entferne, meldet mir der TLB, eine CoClass müsse ein Interface besitzen. Das Problem ist, dass ich die entsprechende CoClass auch nicht sichtbar haben will.
Also alles entfernen und in einer Private-Unit definiert. Beim starten des COM-Objekts erhalte ich nin allerdings die Exception 'Type Information Missing'
Müssen CoClasses in der TLB sichtbar sein?

Tom

Zitat von BenBE:
AFAIK sind die TLBsnur dazu da, um die Interface-Struktur global bekannt zu geben, d.h. zu sagen, wie die Procedure-Tables und ähnliches aufgebaut sind. Wenn Du das selber für deine Klasse weißt, sollten sich keine Probleme für Dich ergeben. Wenn andere dieses Interface aber nicht kennen sollen, kannst Du dessen Definition weglassen und jeder, der nicht die Gesamtstruktur kennt, kann nicht darauf zugreifen.

Aber wie gesagt: Hab selber mit COM noch nicht großartig gearbeitet.
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz