Einzelnen Beitrag anzeigen

dingdoi

Registriert seit: 3. Aug 2004
Ort: Hamburg
26 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit Rückgabewert einer C++-DLL

  Alt 11. Dez 2012, 15:49
Delphi-Version: XE2
Hallo zusammen,

ich importiere eine Funktion aus einer C++-DLL:
Code:
/*
 * Get the name associated with the <binIdx>th bin on the specified
 * printer. If successful, fills in <buf> (up to <bufSize>-1
 * characters) and returns <buf>; otherwise, returns NULL.
 */
LIBFUNC char *pdfGetBinName(char *printerName, int binIdx,
             char *buf, int bufSize);

Das Ganze sieht in meiner Import-Unit folgendermaßen aus:
Delphi-Quellcode:
function pdfGetBinName(printerName: PAnsiChar; binIdx: Integer;
                       var buf: PAnsiChar; var bufSize: Integer): PAnsiChar; cdecl;
Wenn ich es aber aufrufe, erhalte ich eine Zugriffsverletzung.
Delphi-Quellcode:
var
  count, i, bufSize: Integer;
  buf: PAnsiChar;
begin
  pdfGetBinName(PAnsiChar('Druckername'), 0, buf, bufSize);
end;
Vermutlich sehe ich gerade den Wald vor lauter Bäumen nicht. Mit anderen Funktionen ohne PAnsiChar-Rückgabe klappt es. Woran könnte es liegen?

Grüße,
Jan
  Mit Zitat antworten Zitat