Einzelnen Beitrag anzeigen

Knollnase

Registriert seit: 23. Mär 2008
Ort: Dresden
2 Beiträge
 
#6

AW: Delphi mit gsdll32.dll benutzen (Ghostscript)

  Alt 23. Dez 2010, 14:46
Der oben gepostete Code ist in Ordnung, es scheitert wahrscheinlich eher an den Parametern.

Ich empfehle, einen stdout-Handler zu implementieren:
Delphi-Quellcode:
  function GSStdIn(ACaller: Pointer; ABuffer: PAnsiChar; ALen: Integer): Integer; stdcall;
  begin
    Result := StrLen(ABuffer);
  end;

  function GSStdOut(ACaller: Pointer; ABuffer: PAnsiChar; ALen: Integer): Integer; stdcall;
  var
    sBuffer : string;
    iChar : Integer;
  begin
    for iChar := 0 to ALen - 1 do
      sBuffer := sBuffer + ABuffer[iChar];

    sGSOutput := sGSOutput + sBuffer;
    Result := ALen;
  end;

...

  @gsapi_set_stdio := GetProcAddress(hDllInst, 'gsapi_set_stdio');
  if gsapi_set_stdio(instance, @GSStdIn, @GSStdOut, @GSStdOut) <> 0 then
    raise Exception.Create('Could not set stdio functions');
In der Variable sGSOutput werden so alle Ausgaben (z.B. Fehlermeldungen) von GhostScript gespeichert.
  Mit Zitat antworten Zitat