Droopy LIB Threadafe?
Droopy LIB Threadafe?
Hi
Obwohl in SubSystems\UserLibThreadSafe\PureLibraries die Droopy Datei liegt, bekomme ich folgenden Error beim Compilieren mit Threadsafe:
PureBasic - Linker error
POLINK: error: Unresolved external symbol '_PB_StringBasePosition'.
Geht die Lib nun doch nicht Threadsafe? :,(
Obwohl in SubSystems\UserLibThreadSafe\PureLibraries die Droopy Datei liegt, bekomme ich folgenden Error beim Compilieren mit Threadsafe:
PureBasic - Linker error
POLINK: error: Unresolved external symbol '_PB_StringBasePosition'.
Geht die Lib nun doch nicht Threadsafe? :,(
gruß oNNy
http://www.onnsoft.de
http://www.onnsoft.de
Die Lib ist eh Schrott, es gibt zwar eine Version für 4.20 aber selbst dort funktionieren einige Funktionen überhaupt nicht. Zumindest war das bei mir so als ich sie vor knapp 4 Wochen ausprobiert hatte. Da allerdings jaPBe einen Bug hat, der den Restart des Compilers nötig macht muss ich das noch mal testen um sicher zu gehen, dass es nicht daran lag...
http://sourceforge.net/project/showfile ... _id=211325
http://sourceforge.net/project/showfile ... _id=211325
es ist doch der source dabei, einfach includieren und fertig.
Was die qualität der funktionen betrifft:
vieles wurde einfach aus den Foren übernommen,
auch mit Fehlern (zum Bsp unzureichende Dimensionierung bei StringBuffern) .
Die Kommentare in Französich lassen Urlaubsgefühle aufkommen.
Oft sinds tatsächlich nur einzeilige einfache Api-Wrapper.
Da aber der source ja dabei ist, selber grad schnell ändern.
Was die qualität der funktionen betrifft:
vieles wurde einfach aus den Foren übernommen,
auch mit Fehlern (zum Bsp unzureichende Dimensionierung bei StringBuffern) .
Die Kommentare in Französich lassen Urlaubsgefühle aufkommen.
Oft sinds tatsächlich nur einzeilige einfache Api-Wrapper.
Da aber der source ja dabei ist, selber grad schnell ändern.
Rings hat geschrieben:ziert sich nich beim zitieren
Ok, Kommando zurück, ich die Lib gerade noch mal installiert und merkwürdigerweise funktioniert nun das was ich gerade getestet hab und letztes mal absolut nicht wollte jetzt einwandfrei.
Wäre also möglich, dass doch alles geht. Hab natürlich auf die Schnelle nicht alles ausprobieren können, dafür sind es viel zu viele (für mein aktuelles Projekt sehr nützliche) Befehle. Gut dass ich es noch mal ausprobiert habe.
Dumm ist jedoch bei so einer Sammlung an Befehlen, dass die komplette Lib ins Programm eingebunden wird, auch wenn man nur einige wenige der Funktionen nutzt. Oder ist der Compiler so intelligent Prozeduren, die im eigentlich Programm nie aufgerufen werden, direkt weg zu lassen?
Wäre also möglich, dass doch alles geht. Hab natürlich auf die Schnelle nicht alles ausprobieren können, dafür sind es viel zu viele (für mein aktuelles Projekt sehr nützliche) Befehle. Gut dass ich es noch mal ausprobiert habe.
Dumm ist jedoch bei so einer Sammlung an Befehlen, dass die komplette Lib ins Programm eingebunden wird, auch wenn man nur einige wenige der Funktionen nutzt. Oder ist der Compiler so intelligent Prozeduren, die im eigentlich Programm nie aufgerufen werden, direkt weg zu lassen?
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> Oder ist der Compiler so intelligent Prozeduren, die im eigentlich Programm nie aufgerufen werden, direkt weg zu lassen?
ist er.
nicht nur bei UserLibs, auch bei StandardLibs.
das ist einer der Gründe, warum PB so unglaublich schlanke Exen erzeugt.
ist er.
nicht nur bei UserLibs, auch bei StandardLibs.
das ist einer der Gründe, warum PB so unglaublich schlanke Exen erzeugt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Das macht eigentlich der Linker. Eine lib besteht aus einer oder mehrerer
obj, welche einzeln hinzugelinkt werden können, so das alle Abhängigkeiten
erfüllt sind. TailBite splittet automatisch in viele obj und die PB libs wurden
im lauf der Jahre auch nach und nach gesplittet.
Droopys Lib ist als solche in meinen Augen nicht verwendbar, da z.B. nicht
in allen Funktionen dynamische IDs (#PB_Any) verwendet werden, so das
man sich dann wundert, wenn eine geöffnete Datei nicht mehr offen ist oder
eine DLL nicht mehr geladen
obj, welche einzeln hinzugelinkt werden können, so das alle Abhängigkeiten
erfüllt sind. TailBite splittet automatisch in viele obj und die PB libs wurden
im lauf der Jahre auch nach und nach gesplittet.
Droopys Lib ist als solche in meinen Augen nicht verwendbar, da z.B. nicht
in allen Funktionen dynamische IDs (#PB_Any) verwendet werden, so das
man sich dann wundert, wenn eine geöffnete Datei nicht mehr offen ist oder
eine DLL nicht mehr geladen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
stimmt leider nicht so ganz ... ich habe mir deshalb einen preprozessor gebaut, der wirklich alle ungenutzten Procs rausschmeisst..Kaeru Gaman hat geschrieben:> Oder ist der Compiler so intelligent Prozeduren, die im eigentlich Programm nie aufgerufen werden, direkt weg zu lassen?
ist er.
nicht nur bei UserLibs, auch bei StandardLibs.
das ist einer der Gründe, warum PB so unglaublich schlanke Exen erzeugt.
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Es kommt darauf an wie man die Lib schreibt. Schreibe ich alles in eineKaeru Gaman hat geschrieben:> Oder ist der Compiler so intelligent Prozeduren, die im eigentlich Programm nie aufgerufen werden, direkt weg zu lassen?
ist er.
nicht nur bei UserLibs, auch bei StandardLibs.
das ist einer der Gründe, warum PB so unglaublich schlanke Exen erzeugt.
Datei, landet auch alles in der Executable. Wie ts schon schrieb, hat das
aber gar nichts mit dem Kompiler zu tun.
Der Kompiler schreibt alle Proceduren in ASM Macros, werden diese
nicht aufgerufen, kompiliert sie FASM erst gar nicht mit. Leider ist PB
da etwas oberflaechlich.
Code: Alles auswählen
Procedure a()
EndProcedure
Procedure b()
a()
EndProcedure
in der Exe.