Ressourcen

Anfängerfragen zum Programmieren mit PureBasic.
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 »

@Kaeru Gaman
Falsches Thema :mrgreen:

Es geht darum eine DLL in der Exe mitzuliefern, also nicht als Extra-Datei.
Als Resource hats den Vorteil, das die DLL bei Nutzung nur einmal in den
Speicher geladen wird, bei Include-Binary wird sie aber mit der Exe
(Resourcen werden nicht mit der Exe automatisch geladen, nur wenn
gebraucht, wie z.B. erstes Icon für Fenster) geladen und dann bei Nutzung
ein zweites mal, das gilt auch für Bilder usw. die mit Catch... geladen
werden.

Aber für eine DLL, die man noch nichtmal aus dem Speicher nutzt, ist der
Zweck nicht unbedingt erfüllt.

Man könnte auch per Hand ein Resource-Script erstellen und das ganze
per API lösen, wenn man UserLibs nicht mag, wäre aber nicht so einfach
für Einsteiger.

PS: Meine UserLib gibts keinerlei Strings zurück und läuft bisher unter allen
PB-Versionen seit 4... ohne Änderungen, nutzt bloß keiner :?

Ich selber hab leider kaum Bedarf an Bildern, Sprites und Sounds im
Programm.

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

Beitrag von Kaeru Gaman »

hast du auch für die vorteile deine anwendung eine plattform?
mach doch mal mehr reklame für deine arbeit!

und weiter aufmerksam gelesen:
da widersprichst du mir aber doch nicht (maßgeblich).

für ne DLL, die du in ner Ressource lädtst, hast du trotzdem den umständlichen aufruf.
für ne Userlib hast du dahingegen den geringeren speicherbedarf.

also, ein progger sollte beides einschätzen können, um zu entscheiden,
welche routinen er wie einbinden will.
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 »

Kaeru Gaman hat geschrieben: für ne DLL, die du in ner Ressource lädtst, hast du trotzdem den umständlichen aufruf.
für ne Userlib hast du dahingegen den geringeren speicherbedarf.
Es geht nicht um DLL oder Userlib :mrgreen:
Es geht um Wie DLL in Exe integrieren :wink:

Plattform für meine Userlib hab ich. Hier ein Thread, im engl. sowie auf
PureArea.net wohl auch. Desweiteren natürlich auf www.realsource.de

Nachteile der UserLib gegenüber IncludeBinary:
1. Resourcen sind nicht "geschützt" (kein wirklicher Vorteil, da kein wirklicher Schutz)
2. Nur Windows
3. UserLib könnte bei PB Änderungen nicht mehr funktionieren

Vorteile:
1. Halber Speicherverbrauch
2. einfache Handhabung
3. integrierte Packfunktion (brieflz)
4. integrierte DLL aus Speicherfunktion (memorymodule)
5. Save funktion zum wiederherstellen.
6. von mir :mrgreen:

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

Beitrag von Kaeru Gaman »

ts-soft hat geschrieben:6. von mir :mrgreen:
7. erstes treffendes Argument, was ich für U-Libs höre.... :mrgreen:

ne im ernst, ich war ursprünglich so strikt dagegen,
weil ich probleme mit nem einfachen 2D-Drawing-Code berichtet bekommen hab,
nur weil ein Kollege zwei Libs installiert hatte, die ich nicht hatte - und ich hatte keine Libs benutzt.

wenn der kollege oberchecker-libmaker-king so probleme vermeiden kann, ok.

ich hab nix gegen Libs, solange sie niemandem, der sie garnicht benutzen will, probleme bereiten.

PS:
aber vielleicht sollte ich garnicht mehr so aktiv rummeckern....
hab mich heut erst wieder über PB's precasting-order aufgeregt,
und darüber, dass das team da nix drüber sagt.
wenn PB an der Basis so schlecht bleibt, ist der Smalltalk echt das einzige Argument für mich, hier zu bleiben.
ich hab Java6 fürn 10er bekommen (das BUCH), ich krieg DELPHI auch umsonst im Net,
also was solls.......
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 »

Ist auch die erste mir bekannte UserLib mit integriertem, in PB
geschriebenen Compiler
Kann zwar nur einen Resourcetyp kompilieren, aber das Nativ :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
H.Brill
Beiträge: 497
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

UDRes

Beitrag von H.Brill »

Also ich benutze sie immer noch gerne, da sie
eine einfache Möglichkeit bietet, meine DLL und
meine Datendateien zu integrieren.

Und wenn TS-Soft noch zusätzl. Ideen zur UDres hat,
würde es mich freuen.

PS: Das einzige was mir noch nicht ganz klar ist,
ist der opt. Parameter hmodule.l.
Hat da jemand ein praktisches Beispiel dafür ?
Zuletzt geändert von H.Brill am 05.06.2008 08:34, insgesamt 1-mal geändert.
PB 6.10
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Kaeru Gaman hat geschrieben: aber vielleicht sollte ich garnicht mehr so aktiv rummeckern....
hab mich heut erst wieder über PB's precasting-order aufgeregt,
und darüber, dass das team da nix drüber sagt.
wenn PB an der Basis so schlecht bleibt, ist der Smalltalk echt das einzige Argument für mich, hier zu bleiben.
ich hab Java6 fürn 10er bekommen (das BUCH), ich krieg DELPHI auch umsonst im Net,
also was solls.......
"Wir haben keine Zeit!", besaenftigen dich solche Aussagen denn nicht ? :wink:

Manchmal hat man das Gefuehl, das die Option mit dem lebenslangen
Update, ne scheiss Idee war, zumindest fuer den Kunden.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Kiffi hat geschrieben:BTW: UDRes_Create() ist nicht als Topic in der Hilfe vorhanden.
fürwahr! Hiermit ziehe ich meine Aussage zurück und behaupte das Gegenteil.

(muss mal wieder zum Optiker...) Bild

Grüße ... Kiffi
a²+b²=mc²
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

Re: UDRes

Beitrag von ts-soft »

H.Brill hat geschrieben: PS: Das einzige was mir noch nicht ganz klar ist,
ist der opt. Parameter hmodule.l.
Hat da jemand ein praktisches Beispiel dafür ?

Code: Alles auswählen

If OpenLibrary(0, "mysounds.dll")
  hModule = LibraryID(0)
  
  If hModule
    mysound = UDRes_CatchSound(0, 0, hModule)
  EndIf
EndIf
Was ist daran schwer zu verstehen :?:
Statt DLL kanns auch eine andere Exe sein, die UDRes-Resourcen enthält!
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
H.Brill
Beiträge: 497
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Beitrag von H.Brill »

Ich kann doch mit UDRes_AddFile() mehrere
DLLs oder was auch immer einbinden und z.B.
mit den UDRes_Catch... Befehlen anhand der
resNumber.l mir das gewünschte rauspicken.
Gleiches geht ja auch mit DLLs mittels UDRes-
GetFunction.
Dafür brauche ich mir ja keine extra DLL (z.B. für
mehrere Sounds oder Bilder) zu basteln, sondern
erhöhe ResNumber bei UDRes_AddFile() immer
um 1. Somit habe ich ja auch alles in einer einzigen
.res Datei.

Deshalb dachte ich, hmodule sei noch für andere
Zwecke gedacht.

Andere Frage : Kann ich hModule.l bestücken,
indem ich eine .EXE mit RunProgramm starte
und hmodule dann die ProgamID() zuordne ?
PB 6.10
Antworten