lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
KoBraSoft
Beiträge: 137
Registriert: So 6. Jun 2021, 09:57
OS, Lazarus, FPC: die zu Zeit aktuellen Versionen, überwiegend Linux
CPU-Target: 64Bit 32 Bit
Kontaktdaten:

lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von KoBraSoft »

Hallo,
ich habe für einen Kunden vor vielen Jahren ein Programm geschrieben, das ua (LazReport) Berichte als pdf speichert. Normalerweise verwende ich dafür den TFrTNPDFExportFilter.
Da der Kunde spezielle Fonts haben wollte die mit dem TFrTNPDFExportFilter nicht funktionierten, habe ich den TlrCairoExportFilter verwendet. Unter Linux kein Problem, da der Kunde aber leider nur einen Windows PC hat habe ich die dll von https://www.cairographics.org/download/ herunter geladen. Siehe auch: viewtopic.php?t=9249

Das ganze hat viele Jahre problemlos funktioniert. Aber leider hat Microsoft meinem Kunden derart zugesetzt, dass er auf Win11 umsteigt und dazu einen neuen Rechner kaufen muss. Er ist zu einem mir befreundeten Händler gegangen. Der hat die gesamte Anwendung auf den neuen Rechner kopiert, auch die DLLs.

Win11 hat dann die beliebte Fehlermeldung
0xc000007b
ausgeworfen. Bei der Fehlersuche stellte ich fest, dass die Cairo DLLs Win32 sind.
Unter Win10 hat das tadellos funtioniert, unter Win11 nicht mehr.
Ich habe intensiv nach Cairo DLLs Win64 gesucht, aber leider nichts gefunden. Weis jemand wo ich diese DLLs finde?
Zum Glück will der Kunde seine speziellen Fonts nicht mehr haben, deshalb habe ich die Anwendung auf TFrTNPDFExportFilter umgestellt und läuft wieder.

Ich weis jetzt wieder warum ich Windows nicht mag. Nicht dass Windows technisch schlecht wäre, sondern dass Microsoft seine Kunden ständig aufdringlich zum Kauf neuer Versionen (oder neuer Rechner) nötigt.
Zuletzt geändert von KoBraSoft am Sa 1. Nov 2025, 13:56, insgesamt 2-mal geändert.
Konrad

www.KoBraSoft.de

Mathias
Beiträge: 7093
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von Mathias »

Da der Kunde spezielle Fonts haben wollte die mit dem TFrTNPDFExportFilter nicht funktionierten, habe ich den TlrCairoExportFilter verwendet. Unter Linux kein Problem, da der Kunde aber leider nur einen Windows PC hat habe ich die dll von https://www.cairographics.org/download/ herunter geladen. Siehe auch: viewtopic.php?t=9249
Diese Links führen zu einem echten Museumsstück von Jahr 2000 !
Ich habe intensiv nach Cairo DLLs Win64 gesucht, aber leider nichts gefunden. Weis jemand wo ich diese DLLs finde?
Hast du eine PC mit Linux, wen ja, kannst du sehr einfach über die Distrobox ein Fedora-Linux temporär installieren und mit diesem Fedoro kommst du sehr bequem an die DLLs ran.
Ich habe da eine Kurzanleitung, wie die mit Linux Mint geht.

Code: Alles auswählen

sudo apt install podman
sudo apt install distrobox

Fedora:

distrobox create --name fedora44 --image fedora:44
distrobox enter fedora42

sudo dnf install mingw64
sudo dnf install mingw32-gtk4 mingw64-gtk4

64Bit Windows
cd /usr/x86_64-w64-mingw32/sys-root/mingw/bin/
cp . /home/tux/win64_dll/ -r

34Bit Windows
cd /usr/i686-w64-mingw32/sys-root/mingw/bin$
cp . /home/tux/win32_dll/ -r



Im Host Win64 GTK4 Demo starten:

cd /home/tux/win64_dll
wine gtk4-demo
Die Anleitung ist für GTK4, da ist cairo sowieso dabei und du kannst die benötigten DLLs rauspicken.
Oder du änderst die ab, so das nur Cairo und seine Abhängigkeiten kommen.

Code: Alles auswählen

sudo dnf install mingw64
sudo dnf install mingw32-gtk4 mingw64-gtk4
Ich denken, dies ist etwa so.

Code: Alles auswählen

sudo dnf install mingw64
sudo dnf install mingw64-cairo
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
KoBraSoft
Beiträge: 137
Registriert: So 6. Jun 2021, 09:57
OS, Lazarus, FPC: die zu Zeit aktuellen Versionen, überwiegend Linux
CPU-Target: 64Bit 32 Bit
Kontaktdaten:

Re: lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von KoBraSoft »

Mathias hat geschrieben: Sa 1. Nov 2025, 08:54 Diese Links führen zu einem echten Museumsstück von Jahr 2000 !
Ja, die Anwendung habe ich ja auch schon vor vielen Jahren erstellt
Hast du eine PC mit Linux,
Ja, ziemlich viele sogar :D

mingw64-cairo
Das ist das Schlüsselwort, dadurch bin ich auf http://cdimage.debian.org/mirror/msys2. ... kg.tar.zst gekommen.

Dort ist die dll drin, sogar ganz aktuell.
Ich kann das leider nicht mehr testen, da der PC an den Kunden ausgeliefert wurde und ich keinen PC mit Win11 besitze.
Konrad

www.KoBraSoft.de

Soner
Beiträge: 764
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: [gelöst] lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von Soner »

Du hast dein Thema als gelöst markiert, aber ich würde in deiner Stelle Lösung finden anstatt "Kunde braucht es nicht mehr", weil jemand anders könnte gleiches Problem haben.
Inkscape hat diese DLL, ich würde es in Windows installieren und von dort kopieren und testen. Windows 11 iso kann kostenlos herunterladen werden und als Testversion für x-Tage in virtuelle Maschine installiert werden.

Ich habe gerade getestet, sowohl PDF-Export von PowerPDF als auch FCLPDF kann Schriften nicht einbinden, das ist aber sehr wichtig für Berichte, wenn ein Schriftart außer die 14 Standardschriften verwendet wird, dann sollten die Schriften eingebunden werden.
FCLPDF ist ganz schlecht, erstens sieht der Text schlecht aus, wenn auf dem Zielcomputer Schriftart fehlt, zweitens sind die erzeugten PDF-Dateien 6 mal größer. Ich dachte immer, dass es wegen der Größe der Dateien Schriften einbindet.

Mathias
Beiträge: 7093
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von Mathias »

Mathias hat geschrieben: 1. Nov 2025, 08:54
Diese Links führen zu einem echten Museumsstück von Jahr 2000 !
Ja, die Anwendung habe ich ja auch schon vor vielen Jahren erstellt
Ich meinte die fertigen DLLs von Cairo.
Hast du eine PC mit Linux,
Ja, ziemlich viele sogar :D
Dann würde ich es dir mit distrobox und fedora empfehlen.
Das ist das Schlüsselwort, dadurch bin ich auf http://cdimage.debian.org/mirror/msys2. ... kg.tar.zst gekommen.
Diese Quellen sind mir auch bekannt, aber da wirst du selig, bis du alle DLLs gefunden hast. Cairo hat doch ein paar Abhängigkeiten.
Ich habe es rasch mit fedora gemacht, es sind doch 34 DLLs. welche gebraucht werden.
Wen du willst, kann ich dir diese irgendwo hochladen.

Code: Alles auswählen

Dort ist die dll drin, sogar ganz aktuell.
Ich kann das leider nicht mehr testen, da der PC an den Kunden ausgeliefert wurde und ich keinen PC mit Win11 besitze.
Cairo sollte gut testbar mit wine sein.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
KoBraSoft
Beiträge: 137
Registriert: So 6. Jun 2021, 09:57
OS, Lazarus, FPC: die zu Zeit aktuellen Versionen, überwiegend Linux
CPU-Target: 64Bit 32 Bit
Kontaktdaten:

Re: [gelöst] lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von KoBraSoft »

Soner hat geschrieben: Sa 1. Nov 2025, 12:26 Du hast dein Thema als gelöst markiert, aber ich würde in deiner Stelle Lösung finden anstatt "Kunde braucht es nicht mehr", weil jemand anders könnte gleiches Problem haben.
OK, ich lösche das "gelöst" wieder
Inkscape hat diese DLL, ich würde es in Windows installieren und von dort kopieren und testen. Windows 11 iso kann kostenlos herunterladen werden und als Testversion für x-Tage in virtuelle Maschine installiert werden.
Nö Win11 herunterladen und in eine VM zu installieren ist mir zu aufwändig. Ich habe die lrFclPDFExport Demo auf lrCairoExport umgebaut und bitte jemandem von Euch das auf Win11 zu testen
cairo.7z
(534.38 KiB) 46-mal heruntergeladen

Ich habe gerade getestet, sowohl PDF-Export von PowerPDF als auch FCLPDF kann Schriften nicht einbinden, das ist aber sehr wichtig für Berichte, wenn ein Schriftart außer die 14 Standardschriften verwendet wird, dann sollten die Schriften eingebunden werden.
FCLPDF ist ganz schlecht, erstens sieht der Text schlecht aus, wenn auf dem Zielcomputer Schriftart fehlt, zweitens sind die erzeugten PDF-Dateien 6 mal größer. Ich dachte immer, dass es wegen der Größe der Dateien Schriften einbindet.
Konrad

www.KoBraSoft.de

Mathias
Beiträge: 7093
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: [gelöst] lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von Mathias »

Win11 hat dann die beliebte Fehlermeldung
0xc000007b
ausgeworfen. Bei der Fehlersuche stellte ich fest, dass die Cairo DLLs Win32 sind.
Unter Win10 hat das tadellos funtioniert, unter Win11 nicht mehr.
Ich habe intensiv nach Cairo DLLs Win64 gesucht, aber leider nichts gefunden. Weis jemand wo ich diese DLLs finde?
Diese Fehlermeldung ist schon recht mager, Da müsste man schon ein wenig mehr habe, wie diese hier, ansonsten wies man gar nicht, was für DLL überhaupt fehlen.

Code: Alles auswählen

wine project1.exe 
00e8:err:module:import_dll Library libxml2.dll (which is needed by L"Z:\\n4800\\DATEN\\Programmierung\\mit_GIT\\Lazarus\\Tutorial\\GNOME\\Example\\GTK4_and_Extensions\\gstreamer\\50_-_GTK4_Media_Player\\project1.exe") not found
00e8:err:module:loader_init Importing dlls for L"Z:\\n4800\\DATEN\\Programmierung\\mit_GIT\\Lazarus\\Tutorial\\GNOME\\Example\\GTK4_and_Extensions\\gstreamer\\50_-_GTK4_Media_Player\\project1.exe" failed, status c0000135
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 7093
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von Mathias »

Nö Win11 herunterladen und in eine VM zu installieren ist mir zu aufwändig. Ich habe die lrFclPDFExport Demo auf lrCairoExport umgebaut und bitte jemandem von Euch das auf Win11 zu testen
Mit wine würde es bei mir laufen.
Jetzt habe ich es in der VB mit Win10 getestet, läuft auch.
Mein wine und Win10 ist gtk4 tauglich eingerichtet, das wird der Grund sein, das es auf Anhieb läuft.

Einzig mein Lazarus motzt, wegen, TlrCairoExport, obwohl ich es nachinstalliert habe. Aber kompilieren tut es das Programm ohne Probleme, nach dem ich alles Debuggzeugs deaktiviert habe.
So nebenbei läuft es auch mit Linux.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Soner
Beiträge: 764
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: [gelöst] lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von Soner »

KoBraSoft hat geschrieben: Sa 1. Nov 2025, 13:56
Soner hat geschrieben: Sa 1. Nov 2025, 12:26 Du hast dein Thema als gelöst markiert, aber ich würde in deiner Stelle Lösung finden anstatt "Kunde braucht es nicht mehr", weil jemand anders könnte gleiches Problem haben.
OK, ich lösche das "gelöst" wieder
Ich meinte damit die anderen Kunden und nicht die Programmierer hier.

Ich habe dein Beispielprogramm unter Windows 11 in "C:\Program Files\Inkscape\bin" Ordner kopiert und gestartet und es funktioniert. Vielleicht solltest du in Zukunft als Beispiel exotische Schriftart nehmen. Helvetica istStandard-PDF-Schriftart.

PascalDragon
Beiträge: 1003
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von PascalDragon »

KoBraSoft hat geschrieben: Sa 1. Nov 2025, 07:56 Win11 hat dann die beliebte Fehlermeldung
0xc000007b
ausgeworfen. Bei der Fehlersuche stellte ich fest, dass die Cairo DLLs Win32 sind.
Unter Win10 hat das tadellos funtioniert, unter Win11 nicht mehr.
Ich habe intensiv nach Cairo DLLs Win64 gesucht, aber leider nichts gefunden. Weis jemand wo ich diese DLLs finde?
Wenn deine Anwendung 32-Bit ist, dann brauchst du keine 64-Bit DLLs dafür, da Windows die einfach nicht für deine Anwendung laden würde. Das Problem muss also was anderes sein.
FPC Compiler Entwickler

Benutzeravatar
KoBraSoft
Beiträge: 137
Registriert: So 6. Jun 2021, 09:57
OS, Lazarus, FPC: die zu Zeit aktuellen Versionen, überwiegend Linux
CPU-Target: 64Bit 32 Bit
Kontaktdaten:

Re: lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von KoBraSoft »

PascalDragon hat geschrieben: Sa 1. Nov 2025, 17:28 Wenn deine Anwendung 32-Bit ist, dann brauchst du keine 64-Bit DLLs dafür, da Windows die einfach nicht für deine Anwendung laden würde. Das Problem muss also was anderes sein.
Meine Anwendung war und ist 64 bit, die DLLs waren vermutlich 32 bit. Tatsache ist das die Anwendung mit diesen DLLs unter Win10 tadellos gelaufen ist, unter Win11 jedoch nicht mehr
Konrad

www.KoBraSoft.de

Mathias
Beiträge: 7093
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von Mathias »

Meine Anwendung war und ist 64 bit, die DLLs waren vermutlich 32 bit. Tatsache ist das die Anwendung mit diesen DLLs unter Win10 tadellos gelaufen ist, unter Win11 jedoch nicht mehr
Jetzt ist die war deine Anwendund früher wirklich 64bit ?
Ich weis nicht, ob du den Paradox von Window und den DLL Ordnher kennst. In "system32" kommen die 64bit DLLs rein und unter "syswow64" die 32bit DLLs. Total Irreführend.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
KoBraSoft
Beiträge: 137
Registriert: So 6. Jun 2021, 09:57
OS, Lazarus, FPC: die zu Zeit aktuellen Versionen, überwiegend Linux
CPU-Target: 64Bit 32 Bit
Kontaktdaten:

Re: lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von KoBraSoft »

Mathias hat geschrieben: Sa 1. Nov 2025, 20:09
Meine Anwendung war und ist 64 bit, die DLLs waren vermutlich 32 bit. Tatsache ist das die Anwendung mit diesen DLLs unter Win10 tadellos gelaufen ist, unter Win11 jedoch nicht mehr
Jetzt ist die war deine Anwendund früher wirklich 64bit ?
Ja, die Anwendung war zu 100% sicher 64 bit, Ob die DLLs 32 bit waren, bin ich mir nicht sicher, ist eher eine Vermutung.
Ich weis nicht, ob du den Paradox von Window und den DLL Ordnher kennst. In "system32" kommen die 64bit DLLs rein und unter "syswow64" die 32bit DLLs. Total Irreführend.
Ja, Windows ist tatsächlich widersprüchlich. Viele Widersprüche entstehen durch die gegenläufigen Ziele von Programmierern und Marketing Leuten. Microsoft hat sehr viele, sehr gute Programmierer, aber leider auch zu viele, zu gute Marketing Fuzzis.
Konrad

www.KoBraSoft.de

PascalDragon
Beiträge: 1003
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: lazreport exportfilter libcairo-2.dll (oder das Elend mit Windows 11)

Beitrag von PascalDragon »

KoBraSoft hat geschrieben: Sa 1. Nov 2025, 18:08
PascalDragon hat geschrieben: Sa 1. Nov 2025, 17:28 Wenn deine Anwendung 32-Bit ist, dann brauchst du keine 64-Bit DLLs dafür, da Windows die einfach nicht für deine Anwendung laden würde. Das Problem muss also was anderes sein.
Meine Anwendung war und ist 64 bit, die DLLs waren vermutlich 32 bit. Tatsache ist das die Anwendung mit diesen DLLs unter Win10 tadellos gelaufen ist, unter Win11 jedoch nicht mehr
Dann waren die DLLs entweder 64-Bit oder deine Anwendung hat die DLLs eh nicht verwendet. Anders geht es nicht.
FPC Compiler Entwickler

Antworten