AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unterstützt"
Thema durchsuchen
Ansicht
Themen-Optionen

.tlb, ActiveX-Bibliothek, "Schnittstelle nicht unterstützt"

Ein Thema von Meta777 · begonnen am 1. Mär 2006 · letzter Beitrag vom 8. Mär 2006
Antwort Antwort
Seite 2 von 2     12   
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte

  Alt 2. Mär 2006, 16:42
Zitat von Luckie:
Kopier die DLLs auf den Zielrechner ins Systemverzeichnis und registrier sie mit regsrv32 meine.dll.
Auch das hilft nicht. "DLL wurde geladen aber Prozedureeinstiegspunkt für DLLRegisterServer wurde nicht gefunden" oderso. Nach wie vor kommt "Schnittstelle nicht unterstützt"....

Der einzige Unterschied zwischen den Rechnern wo es funktioniert und wo nicht, ist dass die tlb-Datei mit Delphi importiert worden ist. Was macht Delphi also noch wenn man eine tlb-Datei importiert
  Mit Zitat antworten Zitat
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte

  Alt 8. Mär 2006, 10:10
Zitat von Meta777:
Der einzige Unterschied zwischen den Rechnern wo es funktioniert und wo nicht, ist dass die tlb-Datei mit Delphi importiert worden ist. Was macht Delphi also noch wenn man eine tlb-Datei importiert
USH:

it's urgent

be blessed
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte

  Alt 8. Mär 2006, 10:19
Es wird ein Installationsproblem sein. Wurde eFilm bzw. DICOM denn auf beiden Maschinen ordentlich per Setup installiert? Sind denn alle Schnittstellen aus EFILM_TLB.PAS auch in der Registrierdatenbank (HKCR) zu finden?

Grüße vom marabu
  Mit Zitat antworten Zitat
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte

  Alt 8. Mär 2006, 12:33
Zitat von marabu:
Es wird ein Installationsproblem sein. Wurde eFilm bzw. DICOM denn auf beiden Maschinen ordentlich per Setup installiert?
EFilm wurde auf allen Rechner ordentlich installiert. die dlls efDICOM.dll DICOMDLL.dll und efcommon.dll werden von EFilm mit installiert.

Zitat von marabu:
Sind denn alle Schnittstellen aus EFILM_TLB.PAS auch in der Registrierdatenbank (HKCR) zu finden?
Nein,

ich hab gerade mal nachgeschaut mit folgendem Ergebnis:

Wo es funktioniert (EFilm.tlb über Projekt|Typenbibliothek importieren importiert)
Code:
LIBID_EFilm: TGUID = '{C8CF03E5-FD1F-11D3-8C03-0080C8D3C5D3}';
  HKEY_CLASSES_ROOT\Interface\{C8CF03E6-FD1F-11D3-8C03-0080C8D3C5D3}\TypeLib -> (Standard)
  HKEY_CLASSES_ROOT\TypeLib\{C8CF03E5-FD1F-11D3-8C03-0080C8D3C5D3}
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{C8CF03E6-FD1F-11D3-8C03-0080C8D3C5D3}\TypeLib -> (Standard)
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{C8CF03E5-FD1F-11D3-8C03-0080C8D3C5D3}

DIID_IEFilm: TGUID = '{C8CF03E6-FD1F-11D3-8C03-0080C8D3C5D3}';
  HKEY_CLASSES_ROOT\Interface\{C8CF03E6-FD1F-11D3-8C03-0080C8D3C5D3}
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{C8CF03E6-FD1F-11D3-8C03-0080C8D3C5D3}

CLASS_Document: TGUID = '{C8CF03E4-FD1F-11D3-8C03-0080C8D3C5D3}';
  HKEY_CLASSES_ROOT\CLSID\{C8CF03E4-FD1F-11D3-8C03-0080C8D3C5D3}
  HKEY_CLASSES_ROOT\EFilm.Document\CLSID -> (Standard)
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C8CF03E4-FD1F-11D3-8C03-0080C8D3C5D3}
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\EFilm.Document\CLSID -> (Standard)

WO ES NICHT FUNKTIONIERT! (tlb nicht importiert - TestApp bringt "Schnittstelle nicht unterstützt")
Code:
LIBID_EFilm: TGUID = '{C8CF03E5-FD1F-11D3-8C03-0080C8D3C5D3}';
  -NICHTS GEFUNDEN-

DIID_IEFilm: TGUID = '{C8CF03E6-FD1F-11D3-8C03-0080C8D3C5D3}';
  -NICHTS GEFUNDEN-

CLASS_Document: TGUID = '{C8CF03E4-FD1F-11D3-8C03-0080C8D3C5D3}';
  HKEY_CLASSES_ROOT\CLSID\{C8CF03E4-FD1F-11D3-8C03-0080C8D3C5D3}
  HKEY_CLASSES_ROOT\EFilm.Document\CLSID -> (Standard)
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{C8CF03E4-FD1F-11D3-8C03-0080C8D3C5D3}
  HKEY_LOCAL_MACHINE\SOFTWARE\Classes\EFilm.Document\CLSID -> (Standard)
Also muss doch Delphi die tlb registrieren?!!?
Wie kann ich das zur Laufzeit registrieren??
RegisterComServer(const DLLName: String); Ist es sicher nicht, denn ich hab keine DLL.
RegisterAsService(const ClassID, ServiceName: string); Ist es auch nicht, oder? ich hab ja kein Schlüssel "AppId" gefunden.
Welche ist es dann?


TIA

Gottes Segen
  Mit Zitat antworten Zitat
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte

  Alt 8. Mär 2006, 14:16


Folgende Prozedure löst mein Problem:
Delphi-Quellcode:
procedure RegisterTLB(FileName: String);
var
  WFileName, DocName: WideString;
  TypeLib: ITypeLib;
  LibAttr: PTLibAttr;
  DirBuffer: array[0..MAX_PATH] of char;
begin
  if ExtractFilePath(FileName) = 'then
  begin
    GetCurrentDirectory(SizeOf(DirBuffer), DirBuffer);
    FileName := '\' + FileName;
    FileName := DirBuffer + FileName;
  end;
  if not FileExists(FileName) then
    raise Exception.CreateFmt('Datei "%s" nicht gefunden. Registrierung fehlgeschlagen!', [FileName]);
  WFileName := FileName;
  OleCheck(LoadTypeLib(PWideChar(WFileName), TypeLib));
  OleCheck(TypeLib.GetLibAttr(LibAttr));
  try
    OleCheck(TypeLib.GetDocumentation(-1, nil, nil, nil, @DocName));
    DocName := ExtractFilePath(DocName);
    OleCheck(RegisterTypeLib(TypeLib, PWideChar(WFileName), PWideChar(DocName)));
  finally
    TypeLib.ReleaseTLibAttr(LibAttr);
  end;
end;
Damit kann ich zur Laufzeit die tlb registrieren. D.h. allerdings das ich die tlb mitliefern muss und bei der Installation registrieren muss. Danach kann ich die tlb aber wie löschen.

Nungut, Danke für eure Hilfe
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:06 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