![]() |
Auf interfaces zugreifen, wie?
Hallo
Also ich bin ein anfänger in sachen Com. Ich habe eine unit in der Interfaces stehen. Die interfaces haben auch funktionen. Aber wenn ich ein objekt von einem Interface mache, kommt ein Fehler. Was muss ich machen? Hier die Unit ![]() Ich versuche auf das IDbgListener interface zu zu greifen. Bekomme aber immer einen Zugriffs Fehler. danke |
Re: Auf interfaces zugreifen, wie?
Die meisten Interfaces müssen vorher erzeugt werden, wie bspw. hier bei MS-XML 4:
Delphi-Quellcode:
So etwas finde ich aber in der von dir gezeigten Unit nicht. Daher reicht eine einfache Zuweisung wahrscheinlich schon aus. Zur Sicherheit solltest du aber "CoInitialize" und "CoUninitialize" im Programm aufrufen. Wenn du ein typisches VCL-Programm schreibst, dann wird sich der Code für dein Programm ja wohl in einer Unit befinden, und da könntest du das so machen:
var
xmldoc : DomDocument40; begin xmldoc := CoDomDocument40.Create; { ... } end;
Delphi-Quellcode:
Wenn es ein Konsolen- oder nonVCL-Programm ist, dann könntest du das im Hauptteil wie folgt machen:
unit Unit1;
uses { ... }, ActiveX; { ... } initialization CoInitialize(nil); finalization CoUninitialize; end.
Delphi-Quellcode:
begin
if(CoInitialize(nil) = S_OK) then try // Fenster erzeugen, oder Befehle abarbeiten { ... } finally CoUninitialize; end; end. |
Re: Auf interfaces zugreifen, wie?
Danke, scheint aber hier aber nicht zu funktionieren hier mein code
Delphi-Quellcode:
type
TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } Listener: IDbgListener; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var ver: integer; desc: WideString; begin Listener.GetVersion(ver, desc); ShowMessage(IntToStr(ver) + ' | '+ desc); end; initialization CoInitialize(nil); finalization CoUninitialize; end. |
Re: Auf interfaces zugreifen, wie?
Du musst auch das machen was Mathias Dir geschrieben hat.
An welcher Stelle in Deinem Source createst Du Listener??? |
Re: Auf interfaces zugreifen, wie?
Zitat:
Also ich mache das was Mathias sagt: Zitat:
|
Re: Auf interfaces zugreifen, wie?
Hallo,
versuch doch mal meine Frage zu beantworten: An welcher Stelle in Deinem Source createst Du Listener??? |
Re: Auf interfaces zugreifen, wie?
Zitat:
|
Re: Auf interfaces zugreifen, wie?
Versuch es doch mal so:
Im OnCreate des Formulars
Delphi-Quellcode:
Listener:=CreateComObject(IID_IDbgListener) as IDbgListener;
|
Re: Auf interfaces zugreifen, wie?
Danke, leider kommt ein Fehler Klasse nicht registriert vom typ "EOleSysError" was kann man dagegen machen?
|
Re: Auf interfaces zugreifen, wie?
Zitat:
Delphi-Quellcode:
Wenn das nicht klappt wiess ich auch nicht weiter.
Listener:=CreateComObject(CLASS_CoDbgListener) as IDbgListener;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:43 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