zlib Import ist unvollständig

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

zlib Import ist unvollständig

Beitrag von Benubi »

Ich habe schon vor einigen Jahren ein paar selbstgebraute (Un-) Zip libs mir geschrieben welche die zlib.lib nutzen.

Ich bekomme jetzt Fehlermeldungen beim Versuch zu kompilieren wenn ich einige dieser Funktionien nutze. Beispiel:

Code: Alles auswählen

ImportC "zlib.lib"
  
  gzclose(*zgFile)
  
EndImport


Debug gzclose(@dummy.i)
Ich vermute das Problem ist auf die gz API beschränkt, weiß es aber nicht. Ich habe vor einigen Jahren mit gz gespielt und damit keine Probleme gehabt, aber ich kann mich nicht erinnern ob ich die Dateien auch sauber geschlossen habe. Es hatte ja auch funktioniert die komprimierten Textdateien zu lesen oder zu schreiben.

Unter PB 5.73 x86 gibt es 1 fehlende Abhängigkeit __imp_vsnprintf.
Bei allen anderen PB 5.X (x86) Versionen inklusive PB6 Beta 3 (x86) gibt es jedoch 5 unaufgelöste Symbole.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: zlib Import ist unvollständig

Beitrag von ccode_new »

Hallo Benubi,

du versucht eine inkompatible Lib einzubinden.
(Es kann sein das deine verwendete Lib für eine C++ Einbindung und nicht für C ausgelegt ist.)

Hier ist z.B. eine passende X64-Lib für Windows.
https://workupload.com/archive/upJNnFqx

Unter Linux funktioniert es z.B. so:

Code: Alles auswählen

ImportC "-lz"
  
  gzclose(*zgFile)
  
EndImport

Debug gzclose(@dummy.i)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: zlib Import ist unvollständig

Beitrag von Benubi »

Also ich benutze nur die mit PB mitgelieferte lib auf Windows, 124KB groß. Ich möchte das Programm bzw. den Source möglichst monolithisch halten.

Die inflate und deflate Befehle gehen ja beispielsweise auch. Ich verstehe das leider nicht; so wie ich das sehe ist doch die ganze zlib in Ansi C und nicht in C++ geschrieben.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: zlib Import ist unvollständig

Beitrag von ccode_new »

Ach Mist!

Du verwendest PureBasic in der x86-Version.

Die "msvcrt.lib" im PureBasic-Verzeichnis (...\PureLibraries\Windows\Libraries) ist nicht aktuell.

Die Lib müsste neu kompiliert werden.

Hiermit dürftest du das Problem bis auf die "sichere-Version" von printf reduzieren können.

Code: Alles auswählen

ImportC "oldnames.lib"
  
EndImport

ImportC ""
  _vsnprintf.i( *buffer.integer, count.i, format.p-utf8, *argptr )  ;nützt nichts!
EndImport

ImportC "zlib.lib"
  
  gzclose(*zgFile)
  
EndImport


Debug gzclose(@dummy.i)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: zlib Import ist unvollständig

Beitrag von Benubi »

So nun habe ich keine Ahnung wie man diese msvcrt.lib kompiliert, ich habe eine von einer anderen Programmiersprache rüber-stibitzt und jetzt kompiliert es ohne Probleme; etwas Frankeisteinisch das Ganze, ich weiß nicht ob man das darf? :|
Dafür ist die msvcrt.lib jetzt von ca. 231kb auf 1.3mb angewachsen, aber die Executables sehen gleich groß aus und funktionieren. Der Import von der vsnprintf ist auch nicht mehr notwendig damit es funktioniert.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: zlib Import ist unvollständig

Beitrag von ccode_new »

Das ist doch schön.

Hätte ich auch so gemacht.

Und warum soll man das nicht dürfen?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: zlib Import ist unvollständig

Beitrag von mk-soft »

Kleiner Tipp:
Wenn mal wieder eine lib von PB nicht ganz passt, nehme ich diese von PellesC ;)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten