Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Com+ Schnittstelle Delphi 2009 Win32 kann Interface nicht finden (https://www.delphipraxis.net/161614-com-schnittstelle-delphi-2009-win32-kann-interface-nicht-finden.html)

Digielm 12. Jul 2011 12:08

Com+ Schnittstelle Delphi 2009 Win32 kann Interface nicht finden
 
Hallo Alle zusammen,

ich hab da grade ein Problem mit com+
Ich hab eine DLL erstellt inkl. einem Interface.
registriere ich das ganze klappt es auf meinem lokalen rechner ohne Probleme.

starte ich das Tool um die Funktion zu testen von einem anderen Rechner erhalte ich immer die Fehlermeldung dass das Interface nicht registriert wäre.
Wenn ich das com Object zusätzlich auf diesem rechner Installiere klappt alles. Es sieht wohl so aus als ob das Tool Versucht das Interface local zu öffnen.

Wer kann mir helfen ??

Hier mal der Source der TLB Datei

Delphi-Quellcode:
unit ccServicecom_TLB;

// ************************************************************************ //
// WARNUNG
// -------
// Die in dieser Datei deklarierten Typen wurden aus Daten einer Typbibliothek
// generiert. Wenn diese Typbibliothek explizit oder indirekt (über eine
// andere Typbibliothek) reimportiert wird oder wenn der Befehl
// 'Aktualisieren' im Typbibliotheks-Editor während des Bearbeitens der
// Typbibliothek aktiviert ist, wird der Inhalt dieser Datei neu generiert und
// alle manuell vorgenommenen Änderungen gehen verloren.
// ************************************************************************ //

// $Rev: 17252 $
// Datei am 12.07.2011 13:10:05 erzeugt aus der unten beschriebenen Typbibliothek.

// ************************************************************************  //
// Typbib.: C:\Entwicklung\gw-solutions\comcomservicescomplus\comconServicecom (1)
// LIBID: {A8BB64BD-A382-43BE-950F-F8DF19DCB70C}
// LCID: 0
// Hilfedatei:
// Hilfe-String: comconServicedll
// Liste der Abhäng.:
//   (1) v2.0 stdole, (C:\Windows\system32\stdole2.tlb)
//   (2) v1.0 COMSVCSLib, (comsvcs.dll)
//   (3) v4.0 StdVCL, (STDVCL40.TLB)
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit muss ohne Typüberprüfung für Zeiger compiliert werden.

{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
{$VARPROPSETTER ON}
{$ALIGN 4}
interface

uses Windows, ActiveX, Classes, Graphics, OleServer, StdVCL, Variants;

// *********************************************************************//
// In der Typbibliothek deklarierte GUIDS. Die folgenden Präfixe werden verwendet:
//   Typbibliotheken     : LIBID_xxxx
//   CoClasses           : CLASS_xxxx
//   DISPInterfaces      : DIID_xxxx
//   Nicht-DISP-Interfaces: IID_xxxx
// *********************************************************************//
const
  // Haupt- und Nebenversionen der Typbibliothek ccServicecomMajorVersion = 3;
  ccServicecomMinorVersion = 0;

  LIBID_ccServicecom: TGUID = '{A8BB64BD-A382-43BE-950F-F8DF19DCB70C}';

  IID_IIpccService: TGUID = '{E455F503-7737-4FB0-A7B8-30C852E7C989}';
  CLASS_IpccService: TGUID = '{49F10394-12E6-49E6-97EC-D974FC669021}';
type
// *********************************************************************//
// Forward-Deklaration von in der Typbibliothek definierten Typen
// *********************************************************************//

  IIpccService = interface;

// *********************************************************************//
// Deklaration von in der Typbibliothek definierten CoClasses
// (HINWEIS: Hier wird jede CoClass ihrem Standard-Interface zugewiesen)
// *********************************************************************//


  IpccService = IIpccService;


// *********************************************************************//
// Deklaration von Strukturen, Unions und Aliasen.
// *********************************************************************//
  PWideString1 = ^WideString; {*}


// *********************************************************************//
// Interface: IIpccService
// Flags:    (4352) OleAutomation Dispatchable
// GUID:     {E455F503-7737-4FB0-A7B8-30C852E7C989}
// *********************************************************************//
  IIpccService = interface(IDispatch)
    ['{E455F503-7737-4FB0-A7B8-30C852E7C989}']
    procedure GETSQLPARAMS(const Datenbankname: WideString; out SQLUSER: WideString;
                           out SQLPW: WideString; out SQLSERVER: WideString; out SQLDB: WideString;
                           out SQLDRIVER: WideString); stdcall;
    procedure Test(const Param1: WideString); stdcall;
  end;

// *********************************************************************//
// Die Klasse CoIpccService stellt die Methoden Create und CreateRemote zur
// Verfügung, um Instanzen des Standard-Interface IIpccService, dargestellt
// von CoClass IpccService, zu erzeugen. Diese Funktionen können
// von einem Client verwendet werden, der die CoClasses automatisieren
// will, die von dieser Typbibliothek dargestellt werden.
// *********************************************************************//

  CoIpccService = class
    class function Create: IIpccService;
    class function CreateRemote(const MachineName: string): IIpccService;
  end;

implementation

uses ComObj;

class function CoIpccService.Create: IIpccService;
begin
  Result := CreateComObject(CLASS_IpccService) as IIpccService;
end;

class function CoIpccService.CreateRemote(const MachineName: string): IIpccService;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_IpccService) as IIpccService;
end;

end.

Bummi 12. Jul 2011 12:15

AW: Com+ Schnittstelle Delphi 2009 Win32 kann Interface nicht finden
 
Dcomcnfg ??

Digielm 12. Jul 2011 12:30

AW: Com+ Schnittstelle Delphi 2009 Win32 kann Interface nicht finden
 
ist alles freigegeben und andere com+ objekte laufen darauf und ich kann sie auch ansteuern.

Hatte ich auch schon in Vermutung gehabt.

Digielm 12. Jul 2011 13:44

AW: Com+ Schnittstelle Delphi 2009 Win32 kann Interface nicht finden
 
Also ich muss die TLB registrieren "von Hand" damit das klappt.

Kann nich die TLB nicht mit ins EXE Projekt mit übernehmen und beim Aufruf mit registrieren lassen ?


Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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