Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

DLLs einbinden - zlib/libzip speziell...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Berkeley



Anmeldungsdatum: 13.05.2024
Beiträge: 94

BeitragVerfasst am: 17.07.2025, 23:00    Titel: DLLs einbinden - zlib/libzip speziell... Antworten mit Zitat

- Was für Dateien braucht der fbc ? - Und was erzeugt er eigentlich ?

Laufen die EXE-Dateien auch mit 32 Bit, oder nur den 64 von meinem Windows ? - Muss ich 32-Bit-Versionen in den lib/win32-Ordner legen ? In den Ordnern sind an sich nur .dll.a-Dateien. Gehen auch die DLLs direkt, ggf. wie, oder muss man mit Spezialtools .dll.a-Dateien erzeugen ?

Hab' n scheiß Problem, libzip zum Laufen zu kriegen. Es scheint wohl so, dass ich zip.bi und z.bi neu erzeugen muss (mit fbfrog), weil die im Bundle vollkommen veraltet sind - libzip 1.0.1. Mittlerweile kommt zlib z.B. als zlib1.dll. Ich schätze auch, dass ich die DLLs nem Build hinzufügen muss, weil Windows die DLLs gar nicht vorinstalliert hat, oder ?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 18.07.2025, 11:59    Titel: Antworten mit Zitat

zlib ist unter Windows wohl nicht vorinstalliert, das ist richtig.
Beim Rest der Frage bin ich nicht vollkommen sicher, worauf sie abzielt; ich versuche mich mal mit einer Antwort.

Du kannst den fbc als gepacktes Archiv herunterladen (ohne Installationsprogramm) und diese Dateien dann an beliebiger Stelle ablegen; zur Nutzung musst du dann halt die richtige Pfadangabe verwenden oder den Pfad in den Umgebungsvariablen eintragen. Es ist aber kein Problem, das ganze fbc-Paket z. B. auf den Stick zu legen und damit den Compiler jederzeit in der Hosentasche dabei zu haben.

Ein 64-Bit-Windows kann auch 32-Bit-Windowsprogramme ausführen, aber ein 32-Bit-Windows keine 64-Bit-Windowsprogramme. Da es in den Frühzeiten des 64-Bit-Compilers noch ziemliche Probleme gab (und auch nicht alle Windowssysteme auf 64 Bit liefen), bin ich nach wie vor am 32-Bit-Compiler hängengeblieben, trotz 64-Bit-Betriebssystem.

zu .dll und .dll.a - manche DLLs sind so erstellt, dass sie sowohl als dynamische Bibliothek als auch als Importbibliothek funktionieren (ich hoffe, die Begriffe stimmen ...) Dann kannst du die xyz.dll in libxyz.dll.a umbenennen und in den lib-Ordner kopieren. Immer klappt das allerdings nicht.

Zu den Header-Dateien von zlib kann ich nichts sagen, weil ich zlib zwar schon das ein oder andere Mal brauche, aber bisher nie direkt, sondern indirekt durch andere Bibliotheken.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berkeley



Anmeldungsdatum: 13.05.2024
Beiträge: 94

BeitragVerfasst am: 18.07.2025, 13:44    Titel: Antworten mit Zitat

Danke. Es geht grundsätzlich nur darum, libzip zum Laufen zu kriegen und fertige Programme lauffähig zu verteilen. Also speziell um alles, wie fbc DLLs einbindet, die von einem BASIC-Projekt gebraucht werden.

Ich schätze mal, dass es nicht klappt, 32-Bit-DLLs in einem 64-Bit-Programm zu integrieren, aber auch keine Warnung kommt...

Ich werd' mal probieren, ob das mit dem Umbenennen der DLL klappt - sollte eigentlich nicht, das sind völlig unterschiedliche Dateiformate...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 18.07.2025, 14:01    Titel: Antworten mit Zitat

Wenn du eine 32-Bit-DLL in einem 64-Bit-Programm einbinden willst, würde ich bei Programmstart mit einer Meldung wie "Das Programm funktioniert nicht mehr" rechnen. Etwas besser ist es, wenn du nur einzelne Symbole der DLL einbinden willst - die werden dann einfach nicht gefunden, und du kannst das Problem innerhalb deines Programms abfangen.

Eine Fehlermeldung beim Compilieren wirst du wohl nur bekommen, wenn du die Bibliothek statisch einbindest. Beim dynamischen Einbinden weiß der Compiler ja noch nicht, was das Programm später bekommen wird.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berkeley



Anmeldungsdatum: 13.05.2024
Beiträge: 94

BeitragVerfasst am: 18.07.2025, 17:38    Titel: Antworten mit Zitat

Ja. Du kannst normal unter Windoof nur ne 32-Bit-DLL fehlerfrei einbinden, wenn du nur Daten - also Konstanten - ausliest. Den Maschinencode führt Windows aber nicht aus, und ich denke dass deswegen dann beim Ausführen eine Meldung kommt "Anwendungsfehler". Also nicht mal ein kleiner Hinweis, dass man ein Problem mit ner DLL hat.

Es wurden Hilfsmittel entwickelt, die zwischen 32 und 64 Bit vermitteln können, sind aber nicht Bestandteil von Windows.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz