Einzelnen Beitrag anzeigen

wurzelsepp1

Registriert seit: 9. Dez 2012
107 Beiträge
 
Delphi 3 Professional
 
#1

COM / DLL-Einbindung für Anfänger

  Alt 17. Okt 2023, 18:08
Moin Gemeinde,

wieder eine der fürchterlichen Anfängerfragen:

Ich möchte einige Funktionen aus einer externen Druck-DLL nutzen. Der Compiler stolpert aber über eine fehlerhafte Einbindung (forward-Deklaration):

Wrapper (Auszug):
Delphi-Quellcode:
const
IID_IDymoAddIn: TGUID = '{09DAFAE1-8EB0-11D2-8E5D-00A02415E90F}';

type
IDymoAddIn = interface;

IDymoAddIn = interface(IDispatch)
    ['{09DAFAE1-8EB0-11D2-8E5D-00A02415E90F}']
    function Open(const FileName: WideString): WordBool; safecall;
    function Save: WordBool; safecall;
    function SaveAs(const FileName: WideString): WordBool; safecall;
    function Print(Copies: Integer; bShowDialog: WordBool): WordBool; safecall;
    procedure Hide; safecall;
    procedure Show; safecall;
    procedure SysTray(State: WordBool); safecall;
    procedure Quit; safecall;
    function Get_FileName: WideString; safecall;
    function SelectPrinter(const Printer: WideString): WordBool; safecall;
    function GetDymoPrinters: WideString; safecall;
    property FileName: WideString read Get_FileName;
  end;
Und dann der Aufruf der externen Funktion aus der Delphi App:

Delphi-Quellcode:
pfad := 'mylabel.lwl';
opened := DymoAddIn.Open(pfad);
Da gibts dann den Fehler "E2018 Record, Objekt oder Klassentyp erforderlich".

Wie macht man das noch richtig?

Danke!
  Mit Zitat antworten Zitat