Hallo,
ich nutze eine C++
DLL in Delphi, um meinen Ausweisdrucker fernzusteuern.
In der
SDK Beschreibung sind die C++ Funktionen beschrieben.
Folgende Funktion funktioniert bspw.:
C++ Code
Code:
void ZBRPRNGetSDKVer(int *major,int *minor,int *engLevel)
Parameters:
major [out]pointer to major version number
minor [out]pointer to minor version number
engLevel [out]pointer to engineering level number
In Delphi nutze ich die Funktion dann bspw. so:
Code:
...
procedure ZBRPRNGetSDKVer(major, minor, engLevel: PInteger); stdcall; external 'ZBRPrinter.dll';
...
procedure TForm2.btnSDKClick(Sender: TObject);
var major, minor, engLevel: PInteger;
a, b, c: integer;
begin
major := @a;
minor := @b;
engLevel := @c;
ZBRPRNGetSDKVsn(major,minor,engLevel);
end;
Aber folgendes funktioniert nicht:
C++ Code
Code:
int ZBRGetHandle(
HANDLE *hPrinter,char *printerName,int *printerType,int *err)
Parameters:
hPrinter [out]pointer to returned printer driver
handle
printerName [in] pointer to printer driver name
printerType [out]pointer to returned printer type value,
err [out]pointer to returned error code
Return Value:
TRUE successful
FALSE failed
In Delphi:
Code:
...
function ZBRGetHandle(hPrinter: Phandle; printername: PChar;printerType, err: PInteger): Boolean; stdcall; external 'ZBRPrinter.dll';
...
procedure TForm2.btnSDKClick(Sender: TObject);
var hPrinter: Phandle;
printerType, err: PInteger;
printerName: Pchar;
begin
printerName := 'Zebra P430i Card Printer USB';
ZBRGetHandle(@hPrinter, printername , @printerType, @err)
end;
Kann mir jemand bitte erklären, warum ich da immer den Fehlercode (in @err) zurückbekomme, dass er den
Handle auf den Drucker nicht hinbekommt? Was mache ich falsch? Der Drucker heißt definitiv so.
Wäre nett, wenn mir jemand weiterhelfen könnte, vielen Dank.
Gruß
mc