function TGhostscript.LoadDLL(PathDLL:
string): Boolean;
var
CurrentDLLPath:
string;
begin
if PathDLL = '
'
then
begin
CurrentDLLPath := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0))) + conDLLName;
end
else
begin
CurrentDLLPath := PathDLL;
end;
if TFile.Exists(CurrentDLLPath)
then
begin
FDLLHandle := LoadLibrary(PChar(CurrentDLLPath));
end;
if FDLLHandle > 0
then
begin
FGsInit := GetProcAddress(FDLLHandle, '
gsapi_new_instance');
Result := (FGsInit(@FGsInstance,
nil) = 0);
if Result
then
begin
FGsApiInitWithArgs := GetProcAddress(FDLLHandle, '
gsapi_init_with_args');
if not Assigned(FGsApiInitWithArgs)
then
begin
FOnError(Self, '
GsApiInitWithArgs konnte nicht ermittelt werden.');
FLog.Log('
GsApiInitWithArgs konnte nicht ermittelt werden');
Result := False;
end;
FGsApiExit := GetProcAddress(FDLLHandle, '
gsapi_exit');
if not Assigned(FGsApiExit)
then
begin
FOnError(Self, '
GsApiExit konnte nicht ermittelt werden.');
FLog.Log('
GsApiExit konnte nicht ermittelt werden');
Result := False;
end;
FGsApiDeleteInstance := GetProcAddress(FDLLHandle, '
gsapi_delete_instance');
if not Assigned(FGsApiDeleteInstance)
then
begin
FOnError(Self, '
GsApiDeleteInstance konnte nicht ermittelt werden.');
FLog.Log('
GsApiDeleteInstance konnte nicht ermittelt werden');
Result := False;
end;
end
else
begin
FOnError(Self, '
Die Ghostscript Instanz konnte nicht erzeugt werden.');
FLog.Log('
Die Ghostscript Instanz konnte nicht erzeugt werden.');
Result := False;
end;
end
else
begin
FOnError(Self, Format('
Die Ghostscript DLL %s wurde nicht geladen.', [QuotedStr(CurrentDLLPath)]));
FLog.Log('
Die Ghostscript DLL wurde nicht geladen');
Result := False;
end;
end;