Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Hat jemand LibTidy erfolgreich in Gebrauch? (https://www.delphipraxis.net/185783-hat-jemand-libtidy-erfolgreich-gebrauch.html)

Codehunter 6. Jul 2015 13:00

Hat jemand LibTidy erfolgreich in Gebrauch?
 
Hallo!

Ich ärgere mich gerade mit libtidy.dll und den dazu gehörigen Delphi-Headern herum.

Die libtidy ist nun schon 6 Jahre alt und die Delphi-Header noch mal 2 Jahre mehr. War ja klar dass das nicht rund laufen würde. Nur so viel Gezicke hätte ich dann doch nicht erwartet...

Hier erstmal mein Test-Code:
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
  input, output: PChar;
  errbuf: TidyBuffer;
  rc: Integer;
  ok: Boolean;
  tdoc: TidyDoc;
  dummy: Cardinal;
begin
  input:= PChar(Memo1.Lines.Text);
  tdoc:= tidyCreate;
  try
    ok:= tidyOptSetBool(tdoc, TidyIndentSpaces, TRUE);
    if ok then
      rc:= tidySetErrorBuffer(tdoc, errbuf);
    if rc >= 0 then
      rc:= tidyParseString(tdoc, input); // <-- Anwendung beendet ohne Fehlermeldung
    if rc >= 0 then
      rc:= tidyCleanAndRepair(tdoc);
    if rc >= 0 then
      rc:= tidyRunDiagnostics(tdoc);
    if rc >= 0 then
      ok:= tidyOptSetBool(tdoc, TidyForceOutput, TRUE);
    if not ok then
      rc:= 1;
    if rc >= 0 then
      rc:= tidySaveString(tdoc, output, dummy);
    if rc >= 0 then
      Memo2.Lines.Text:= output;
  finally
    tidyRelease(tdoc);
  end;
end;
Die Funktion tidyParseString zieht der Testanwendung die Füße weg, beendet das Programm ohne weitere Fehlermeldungen etc. Auf x64 dreht sich auch kein Rad, logisch weil die libtidy.dll nur in 32 Bit vorliegt.

Also bevor ich da viel Arbeit rein stecke mal die Frage in die Runde: Hat irgendwer libtidy derzeit erfolgreich in einem Delphi-Projekt am Start?

Grüße
Cody

uligerhardt 6. Jul 2015 14:08

AW: Hat jemand LibTidy erfolgreich in Gebrauch?
 
Schuss ins Blaue: Hört sich nach ANSI/Unicode an. Mach doch mal aus dem PChar einen PAnsiChar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz