Autor Beitrag
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Mo 27.12.04 14:00 
F.Art hat folgendes geschrieben:
Habe ich das nun richtig verstanden, das man die Schnittstelle in das Delphi Projekt mit ein beziehen kann.

Ja.
Zitat:
Und somit der Dienst nicht mehr installiert sein muß um hinter dem Objekt die zusätzlichen Parameter angezeigt zu bekommen?


Hmm.. was für nen Dienst meinst denn jetzt? und was für nen Parameter?


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
rochus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Mo 27.12.04 14:04 
Hi.
Also das ganze läuft so ab:

es gibt die sog. In-Process-Server, die werden meistens in DLLs implementiert. Diese InProc Server liegen irgendwo auf deinem System und sind in der Registry mit ihrer entsprechenden GUID eingetragen, die sieht z.B. so aus:
ausblenden Quelltext
1:
{E8B288E8-A8D3-4256-A9F2-07961C20FE5C}					

falls du dich mal gewundert hast, was die Dinger in der Registry zu suchen haben ;)

So, d.h. ein InProc Server muss auf deinem System liegen. Denn (und damit zu deiner Frage):
Du kannst z.B. in Delphi auf "Komponente->ActiveX importieren" gehen und da auf hinzufügen. Da kannst dann EXEn und DLLs wählen und daraus wird dann ne entsprechende Unit für dich hergestellt, sprich es werden Interfaces mit eben den entsprechenden GUIDs erstellt.

Erstellst du nachher nen COM Objekt, passiert das über diese GUID und COM schaut nach, wo die zugehörige DLL liegt und liefert dann die entsprechenden Funktionen. -> Die DLL/EXE muss auf dem System vorhanden sein und ja, über [STRG][SPACE] bzw. [STRG][SHIFT][SPACE] kriegst du die code-hilfe, nachdem du die ActiveX bibliothek importiert hast.

Bei DCOM sieht's etwas anders aus, da kann der COM Server auch auf nem anderen Rechner im Netzwerk sein, das steht dann aber alles auch in der Registry.

Im Prinzip kümmert sich aber COM selber um die angelegenheiten. Und wird ein Server nicht gefunden, kriegst ne Exception ;)

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
rochus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Mo 27.12.04 14:07 
MrSaint hat folgendes geschrieben:
und was für nen Parameter?


ich glaub er meint das, was auch kommt wenn man strg+shift+space drückt (ich vergess den echten namen davon immer...)

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
rochus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Mo 27.12.04 14:11 
achja, um es zu verdeutlichen, was ich wollte:

handelt es sich um einen DCOM Server, muss der Server auf deinem System registriert sein, kann aber auf einem anderen Rechner im Netz laufen.

Handelt es sich um einen "normalen" COM Server, muss der Server irgendwo auf deinem System installiert sein.

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Mo 27.12.04 15:04 
Das mit dem ActiveX hinzufügen meinte ich.
Ist es auch möglich die Typenbibliothek von einem Anderen Rechner zu importieren?
Damit ich Citrix nicht erst installieren muss um es dann wieder zu deinstallieren.
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Di 28.12.04 13:18 
So ich habe mal die MFCOM in die Typenbibliothek hinzu gefügt und es kommt folgende Fehlermeldung:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
[Fehler] MetaFrameCOM_TLB.pas(14254): Nicht genügend wirkliche Parameter

procedure TMetaFrameFarm.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer;
    Fintf:= punk as IMetaFrameFarm5;
  end;
end;


lösche ich die Procedur dann kommt die Meldung nicht mehr und es lässt sich kompelieren.
Allerdings dürfte die Procedur auch für irgendetwas wichtig sein und deswegen suche ich ne Lösung um die bei zu behalten.

Hat einer ne Idee?