AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fremde DLL per COM verwenden - OLE-Server-Proxy erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Fremde DLL per COM verwenden - OLE-Server-Proxy erstellen

Ein Thema von Ares · begonnen am 13. Feb 2008 · letzter Beitrag vom 14. Feb 2008
 
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Fremde DLL per COM verwenden - OLE-Server-Proxy erstellen

  Alt 13. Feb 2008, 07:27
Hallo!

Eines vorne weg: Ich bin kein echter Experte für DLLs und COM. Ich weiß (grob) um was es geht. Aber das meiste habe ich mir zusammen gesucht, als ich es brauchte und weiß heute leider nicht mehr was ich gemacht habe...

Also:
In einem meiner Programme verwende ich ein Objekt, das in einer fremden (nicht von mir erstellt) DLL zur Verfügung gestellt wird. Den Zugriff auf diese Funktionen erhalte ich per COM.

Als ich das Programm geschrieben haben, habe ich mit Hilfe von Delphi aus der DLL und der zugehörigen TLB die Datei EineDLLLib_TLB.pas erstellt. Diese Unit enthält die Deklarationen für die Interfaces zum Zugriff auf die DLL-Funktionen. Zusätzlich war ist in dieser Unit noch eine "OLE-Server-Proxy-Klassendeklaration" vorhanden:

Delphi-Quellcode:
// *********************************************************************//
// OLE-Server-Proxy-Klassendeklaration
// Server-Objekt : TKDF
// Hilfe-String : KDF Class
// Standard-Interface: IKDF
// Def. Intf. DISP? : No
// Ereignis-Interface:
// TypeFlags : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  TKDFProperties= class;
{$ENDIF}
  TKDF = class(TOleServer)
  private
    FIntf: IKDF;
  ...
Mit der Klasse TKDF konnte ich mir dann einfach ein Objekt erzeugen und so auf die Funktionen der DLL zugreifen. Soweit so gut.

Nun gibt es eine neue Version der DLL und ich wollte für diese wieder eine _TLB Datei erstellen um das Objekt nutzen zu können. Dafür habe ich ich die .tlb Datei in Delphi (2006) geöffnet und registriert. Dadurch wird automatisch eine _TLB Datei erzeugt. Die Datei enthält auch so ziemlich alles, was die alte _TLB Datei enthalten hat, nur die Deklaration für den OLE-Server-Proxy nicht. Ich kann somit kein Objekt erzeugen.

Ich habe daraufhin noch einmal versucht mit der alten .dll und der alten .tlb eine _TLB.pas Datei zu erstellen. Das klappt auch, nun fehlt aber auch hier die Deklaration für den OLE-Server-Proxy. Ich muss beim ersten Mal also irgendwas anders gemacht haben. Ich finde ahber leider nicht mehr raus, was...

Kann mir jemand sagen, was ich falsch mache und ich eine _TLB.pas Datei erstelle, die ein OLE-Server-Proxy Deklaration enthält?


Ich verwende wie gesagt Delphi 2006. Soweit ich mich erinnere habe ich die _TLB.pas beim erste Mal auch schon mit Delphi 2006 erzeugt. Mit Delphi 6 erhalte ich das gleiche Ergebnis.

Ich habe auch schon versucht tlibimp.exe manuell zu verwenden, aber das zeigt auch kein anderes Ergebnis.

Weiß jemand was zu tun ist?

Besten Dank
Ares
  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 20:22 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