![]() |
Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte
Zitat:
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 :?: |
Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte
Zitat:
it's urgent :stupid: be blessed |
Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte
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 |
Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte
Zitat:
Zitat:
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:
Also muss doch Delphi die tlb registrieren?!!?
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) 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? :roteyes: :nerd: :smile2: :spin: :freak: :stupid: :cry: TIA Gottes Segen |
Re: .tlb, ActiveX-Bibliothek, "Schnittstelle nicht unte
:bouncing4: :bounce2:
Folgende Prozedure löst mein Problem:
Delphi-Quellcode:
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. :roll:
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; Nungut, Danke für eure Hilfe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 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