AGB  ·  Datenschutz  ·  Impressum  







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

Auf interfaces zugreifen, wie?

Ein Thema von XCoderD7 · begonnen am 21. Mai 2004 · letzter Beitrag vom 21. Mai 2004
Antwort Antwort
Seite 1 von 2  1 2      
XCoderD7

Registriert seit: 22. Apr 2004
13 Beiträge
 
Delphi 8 Architect
 
#1

Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 19:47
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
http://dd.cron.ru/dbg/dnld/phpdbgintf210.zip

Ich versuche auf das IDbgListener interface zu zu greifen. Bekomme aber immer einen Zugriffs Fehler.

danke
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 21:42
Die meisten Interfaces müssen vorher erzeugt werden, wie bspw. hier bei MS-XML 4:
Delphi-Quellcode:
var
  xmldoc : DomDocument40;
begin
  xmldoc := CoDomDocument40.Create;

  { ... }
end;
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:
Delphi-Quellcode:
unit Unit1;

uses
  { ... }, ActiveX;


{ ... }


initialization
  CoInitialize(nil);
finalization
  CoUninitialize;
end.
Wenn es ein Konsolen- oder nonVCL-Programm ist, dann könntest du das im Hauptteil wie folgt machen:
Delphi-Quellcode:
begin
  if(CoInitialize(nil) = S_OK) then
  try
    // Fenster erzeugen, oder Befehle abarbeiten
    { ... }
  finally
    CoUninitialize;
  end;
end.
  Mit Zitat antworten Zitat
XCoderD7

Registriert seit: 22. Apr 2004
13 Beiträge
 
Delphi 8 Architect
 
#3

Re: Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 21:51
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.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 21:59
Du musst auch das machen was Mathias Dir geschrieben hat.
An welcher Stelle in Deinem Source createst Du Listener???
I come from outer space to save the human race
  Mit Zitat antworten Zitat
XCoderD7

Registriert seit: 22. Apr 2004
13 Beiträge
 
Delphi 8 Architect
 
#5

Re: Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 22:03
Zitat von Jens Schumann:
Du musst auch das machen was Mathias Dir geschrieben hat.
An welcher Stelle in Deinem Source createst Du Listener???
Hallo
Also ich mache das was Mathias sagt:

Zitat:
So etwas finde ich aber in der von dir gezeigten Unit nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 22:05
Hallo,
versuch doch mal meine Frage zu beantworten: An welcher Stelle in Deinem Source createst Du Listener???
I come from outer space to save the human race
  Mit Zitat antworten Zitat
XCoderD7

Registriert seit: 22. Apr 2004
13 Beiträge
 
Delphi 8 Architect
 
#7

Re: Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 22:09
Zitat von Jens Schumann:
Hallo,
versuch doch mal meine Frage zu beantworten: An welcher Stelle in Deinem Source createst Du Listener???
Überhaupt nicht, wie soll ich den listener den createn?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 22:23
Versuch es doch mal so:
Im OnCreate des Formulars
Listener:=CreateComObject(IID_IDbgListener) as IDbgListener;
I come from outer space to save the human race
  Mit Zitat antworten Zitat
XCoderD7

Registriert seit: 22. Apr 2004
13 Beiträge
 
Delphi 8 Architect
 
#9

Re: Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 22:29
Danke, leider kommt ein Fehler Klasse nicht registriert vom typ "EOleSysError" was kann man dagegen machen?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Auf interfaces zugreifen, wie?

  Alt 21. Mai 2004, 22:32
Zitat von XCoderD7:
Danke, leider kommt ein Fehler Klasse nicht registriert vom typ "EOleSysError" was kann man dagegen machen?
Es müsste auch so lauten Listener:=CreateComObject(CLASS_CoDbgListener) as IDbgListener; Wenn das nicht klappt wiess ich auch nicht weiter.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:58 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