|
Registriert seit: 4. Nov 2011 36 Beiträge |
#1
Hallo zusammen,
ich sitze jetzt schon seit geraumer Zeit an einem Problem. Ich habe eine .Net dll bekommen und versuche diese unter Delphi einzubinden. Hierfür habe ich wie gesagt die dll und auch eine .tlb Mein Versuch bis jetzt war hier über den COM Experten eine Anbindung zu schaffen. Hierbei ist die unten angeähngte ItacIms_TLB.pas Allerdings fehlen hier die Methoden. Es wurde zwar das interface _Mdata angelegt aber sonst auch schon nichts. Ich hänge mal die dll und die tlb mit an. Vielleicht kann mir irgendwer hierbei helfen. Es ist übrigens nur eine Testdll mit nur einer funktion. Der Inhalt:
Code:
Ich danke für eure Hilfe
ItacIms.Mdata mdata = new Mdata();
string x = mdata.GetKuckuck(); string y = mdata.GetInput("HUHU"); Gruß Christian
Delphi-Quellcode:
unit ItacIms_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: 52393 $ // Datei am 15.07.2015 07:25:43 erzeugt aus der unten beschriebenen Typbibliothek. // ************************************************************************ // // Typbib.: C:\DelphiXE5\Projekte\NetTest\ItacIms.tlb (1) // LIBID: {B2D883E2-3EF3-4AB8-9C36-C85205529531} // LCID: 0 // Hilfedatei: // Hilfe-String: // Liste der Abhäng.: // (1) v2.0 stdole, (C:\Windows\SysWOW64\stdole2.tlb) // (2) v2.4 mscorlib, (C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.tlb) // SYS_KIND: SYS_WIN32 // ************************************************************************ // {$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 Winapi.Windows, mscorlib_TLB, System.Classes, System.Variants, System.Win.StdVCL, Vcl.Graphics, Vcl.OleServer, Winapi.ActiveX; // *********************************************************************// // 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 ItacImsMajorVersion = 1; ItacImsMinorVersion = 0; LIBID_ItacIms: TGUID = '{B2D883E2-3EF3-4AB8-9C36-C85205529531}'; IID__Mdata: TGUID = '{36653466-CC12-3A69-9F48-E0366930357A}'; CLASS_Mdata: TGUID = '{976229DF-F00C-3A19-9D4D-0A54213B2014}'; type // *********************************************************************// // Forward-Deklaration von in der Typbibliothek definierten Typen // *********************************************************************// _Mdata = interface; _MdataDisp = dispinterface; // *********************************************************************// // Deklaration von in der Typbibliothek definierten CoClasses // (HINWEIS: Hier wird jede CoClass ihrem Standard-Interface zugewiesen) // *********************************************************************// Mdata = _Mdata; // *********************************************************************// // Interface: _Mdata // Flags: (4432) Hidden Dual OleAutomation Dispatchable // GUID: {36653466-CC12-3A69-9F48-E0366930357A} // *********************************************************************// _Mdata = interface(IDispatch) ['{36653466-CC12-3A69-9F48-E0366930357A}'] end; // *********************************************************************// // DispIntf: _MdataDisp // Flags: (4432) Hidden Dual OleAutomation Dispatchable // GUID: {36653466-CC12-3A69-9F48-E0366930357A} // *********************************************************************// _MdataDisp = dispinterface ['{36653466-CC12-3A69-9F48-E0366930357A}'] end; // *********************************************************************// // Die Klasse CoMdata stellt die Methoden Create und CreateRemote zur // Verfügung, um Instanzen des Standard-Interface _Mdata, dargestellt // von CoClass Mdata, zu erzeugen. Diese Funktionen können // von einem Client verwendet werden, der die CoClasses automatisieren // will, die von dieser Typbibliothek dargestellt werden. // *********************************************************************// CoMdata = class class function Create: _Mdata; class function CreateRemote(const MachineName: string): _Mdata; end; // *********************************************************************// // OLE-Server-Proxy-Klassendeklaration // Server-Objekt : TMdata // Hilfe-String : // Standard-Interface: _Mdata // Def. Intf. DISP? : No // Ereignis-Interface: // TypeFlags : (2) CanCreate // *********************************************************************// TMdata = class(TOleServer) private FIntf: _Mdata; function GetDefaultInterface: _Mdata; protected procedure InitServerData; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Connect; override; procedure ConnectTo(svrIntf: _Mdata); procedure Disconnect; override; property DefaultInterface: _Mdata read GetDefaultInterface; published end; procedure Register; resourcestring dtlServerPage = 'ActiveX'; dtlOcxPage = 'ActiveX'; implementation uses System.Win.ComObj; class function CoMdata.Create: _Mdata; begin Result := CreateComObject(CLASS_Mdata) as _Mdata; end; class function CoMdata.CreateRemote(const MachineName: string): _Mdata; begin Result := CreateRemoteComObject(MachineName, CLASS_Mdata) as _Mdata; end; procedure TMdata.InitServerData; const CServerData: TServerData = ( ClassID: '{976229DF-F00C-3A19-9D4D-0A54213B2014}'; IntfIID: '{36653466-CC12-3A69-9F48-E0366930357A}'; EventIID: ''; LicenseKey: nil; Version: 500); begin ServerData := @CServerData; end; procedure TMdata.Connect; var punk: IUnknown; begin if FIntf = nil then begin punk := GetServer; Fintf:= punk as _Mdata; end; end; procedure TMdata.ConnectTo(svrIntf: _Mdata); begin Disconnect; FIntf := svrIntf; end; procedure TMdata.DisConnect; begin if Fintf <> nil then begin FIntf := nil; end; end; function TMdata.GetDefaultInterface: _Mdata; begin if FIntf = nil then Connect; Assert(FIntf <> nil, 'DefaultInterface ist NULL. Die Komponente ist nicht mit dem Server verbunden. Sie müssen vor dieser Operation "Connect" oder "ConnectTo" aufrufen'); Result := FIntf; end; constructor TMdata.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TMdata.Destroy; begin inherited Destroy; end; procedure Register; begin RegisterComponents(dtlServerPage, [TMdata]); end; end. |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |