AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C++ DLL in Delphi

Ein Thema von mcbain · begonnen am 27. Jul 2011 · letzter Beitrag vom 28. Jul 2011
Antwort Antwort
mcbain

Registriert seit: 18. Mai 2011
50 Beiträge
 
#1

AW: C++ DLL in Delphi

  Alt 27. Jul 2011, 13:22
Danke für die Antwort.
Wenn ich es so deklariere:

Code:
  function ZBRGetHandle(var hPrinter: THandle; var printername: PChar; var printerType; var err: PInteger): boolean; stdcall; external 'ZBRPrinter.dll';
und dann so aufrufe:
Code:
ZBRGetHandle(hPrinter, printername , printerType, err)
Kommt ein Fehlercode heraus, der nicht existiert... Noch ne Idee evtl. ?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#2

AW: C++ DLL in Delphi

  Alt 27. Jul 2011, 13:49
Nein, ich meinte das so:
Delphi-Quellcode:
function ZBRGetHandle(hPrinter: Phandle; printername: PChar; var printerType, err: Integer): Boolean; stdcall; external 'ZBRPrinter.dll';
...

procedure TForm2.btnSDKClick(Sender: TObject);
var hPrinter: Thandle;
    printerType, err: Integer;
    printerName: Pchar;
begin

  printerName := 'Zebra P430i Card Printer USB';
  ZBRGetHandle(@hPrinter, printername , printerType, err)

end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mcbain

Registriert seit: 18. Mai 2011
50 Beiträge
 
#3

AW: C++ DLL in Delphi

  Alt 27. Jul 2011, 14:44
Bringt mir den gleichen Fehlercode 61, "Unable to open handle to Zebra printer driver"....ich verstehs nicht...
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#4

AW: C++ DLL in Delphi

  Alt 27. Jul 2011, 20:38
sicher dass, das handel stimmt? Haette es ja eher mit cdecl versucht:

Delphi-Quellcode:
procedure ZBRPRNGetSDKVer(out major, minor, engLevel: Integer); cdecl; external 'ZBRPrinter.dll';
function ZBRGetHandle(out hPrinter: THandle; printername: PChar; out printerType, err: Integer): Integer; cdecl; external 'ZBRPrinter.dll';
  Mit Zitat antworten Zitat
mcbain

Registriert seit: 18. Mai 2011
50 Beiträge
 
#5

AW: C++ DLL in Delphi

  Alt 28. Jul 2011, 07:31
An dem cdecl lags auch nicht.
Ich habe es nun herausgefunden, es lag an der Dokumentation.
Die Funktion muss folgendermaßen aussehen:

Code:
function ZBRGetHandle(var hPrinter: PHandle; printername: LPSTR; var printerType: Integer; var err: Integer) : Integer;stdcall; external 'ZBRPrinter.dll';
Wichtig dabei war, dass printername ein LPSTR ist und nichts anderes. In der Dokumentation steht da nämlich etwas von char....

Vielen Dank für eure Antworten.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es 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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz