Droopy LIB Threadafe?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
onny
Beiträge: 400
Registriert: 27.04.2005 17:50
Kontaktdaten:

Droopy LIB Threadafe?

Beitrag von onny »

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? :,(
Benutzeravatar
dige
Beiträge: 1183
Registriert: 08.09.2004 08:53

Beitrag von dige »

.. die ist dann wohl veraltet und funktioniert nicht mehr mit PB4.20. Schau
mal ob Droopy schon was neues released hat...
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Benutzeravatar
Rings
Beiträge: 971
Registriert: 29.08.2004 08:48

Beitrag von Rings »

nehmt doch einfach den source, dann klappts mit fast jedem subsystem.
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Hoto
Beiträge: 294
Registriert: 01.09.2004 22:51

Beitrag von Hoto »

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
Benutzeravatar
Rings
Beiträge: 971
Registriert: 29.08.2004 08:48

Beitrag von Rings »

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.
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Hoto
Beiträge: 294
Registriert: 01.09.2004 22:51

Beitrag von Hoto »

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. :shock:

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?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
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

Beitrag von ts-soft »

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 :mrgreen:
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.
Bild
Benutzeravatar
dige
Beiträge: 1183
Registriert: 08.09.2004 08:53

Beitrag von dige »

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.
stimmt leider nicht so ganz ... ich habe mir deshalb einen preprozessor gebaut, der wirklich alle ungenutzten Procs rausschmeisst..
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

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.
Es kommt darauf an wie man die Lib schreibt. Schreibe ich alles in eine
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
Hier wird keine Procedure aufgerufen, Procedure a landet aber trotzdem
in der Exe.
Antworten