Einzelnen Beitrag anzeigen

hgiel

Registriert seit: 4. Apr 2005
61 Beiträge
 
#4

Re: c# DLL .NET in DELPHI32 nutzen

  Alt 23. Sep 2008, 11:01
Hallo,

vielen Dank für die Infos

ich habe die COM.TLB überdie Typbibliothek importiert und auch eine entsprechende UNIT erzeugt, die ich nun in das Programm unter USES impementiert habe:

Ausschnitt aus der NEUEN LIB-Unit:
Delphi-Quellcode:
interface

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


// *********************************************************************//
// In dieser Typbibliothek deklarierte GUIDS . Es werden folgende
// Präfixe verwendet:
// Typbibliotheken : LIBID_xxxx
// CoClasses : CLASS_xxxx
// DISPInterfaces : DIID_xxxx
// Nicht-DISP-Schnittstellen: IID_xxxx
// *********************************************************************//
const
  // Haupt- und Nebenversionen der Typbibliothek
  Sts_Db_SiZ_Usb_ComMajorVersion = 1;
  Sts_Db_SiZ_Usb_ComMinorVersion = 0;

  LIBID_Sts_Db_SiZ_Usb_Com: TGUID = '{9D632297-83A7-3DCC-80D1-65E37EE18965}';

  IID_ISiZUsbCOM: TGUID = '{18CD27C2-3EDD-48D0-A2F5-2A7FB2C8E6A5}';
  IID__SiZUsbCOM: TGUID = '{E3C6DF0A-23D3-38D1-810A-ED6BA2C8C241}';
  CLASS_SiZUsbCOM: TGUID = '{FBE6DA18-7BC9-4671-83F9-8D477D3DC39B}';
type

// *********************************************************************//
// Forward-Deklaration von in der Typbibliothek definierten Typen
// *********************************************************************//
  ISiZUsbCOM = interface;
  ISiZUsbCOMDisp = dispinterface;
  _SiZUsbCOM = interface;
  _SiZUsbCOMDisp = dispinterface;

// *********************************************************************//
// Deklaration von in der Typbibliothek definierten CoClasses
// (HINWEIS: Hier wird jede CoClass zu ihrer Standardschnittstelle
// zugewiesen)
// *********************************************************************//
  SiZUsbCOM = _SiZUsbCOM;


// *********************************************************************//
// Schnittstelle: ISiZUsbCOM
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {18CD27C2-3EDD-48D0-A2F5-2A7FB2C8E6A5}
// *********************************************************************//
  ISiZUsbCOM = interface(IDispatch)
    ['{18CD27C2-3EDD-48D0-A2F5-2A7FB2C8E6A5}']
    function Get_Version_Major: Integer; safecall;
    function Get_Version_Minor: Integer; safecall;
    function Get_Version_Build: Integer; safecall;


....


Leider kann ich noch nicht auf die Funktionen - z.B. Get_Version_Major - aus der Bibliothek zugreifen:

Fehler "Ungenügende Forward oder external - Deklaration"!!!

Ausschnitt aus meinem Programm:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Sts_Db_SiZ_Usb_Com_TLB;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

function Get_Version_Major: Integer; safecall;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(inttostr(Get_Version_Major));
end;

...
Wahrscheinlich habe ich nur ein Brett vorm Kopf und der Zugriff ist ganz leicht zu bewerkstelligen???

[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen! - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat