Ressourcen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Marie23 hat geschrieben:Musste die Datei in den User Libraries Ordner verschieben
http://www.purebasic.fr/german/viewtopi ... 370#200370

wer lesen kann, ... ;-)

Grüße ... Kiffi
a²+b²=mc²
Marie23
Beiträge: 49
Registriert: 31.05.2008 18:14

Beitrag von Marie23 »

Ok
ich hätte noch 2 blöde Fragen zu UDRES :oops:

1. Kann ich eine DLL direkt aus der Resource in den Speicher laden und die Funktionen ganz normal verwenden? (Ohne CallFunctionFast(UDRes_GetPackFunction(..)))

2. Kann ich eine Datei aus der RES Datei auf den PC entpacken?
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 »

Marie23 hat geschrieben: 1. Kann ich eine DLL direkt aus der Resource in den Speicher laden und die Funktionen ganz normal verwenden? (Ohne CallFunctionFast(UDRes_GetPackFunction(..)))
UDRes_GetFunction bzw. UDResGetPackFunction entspricht dem GetFunction
Befehl in PB. Lediglich das laden der DLL entfällt (ist also nur einfacher), man
sollte aber besser Prototypes nutzen! Einfach in der PB Hilfe nachschauen
Marie23 hat geschrieben: 2. Kann ich eine Datei aus der RES Datei auf den PC entpacken?
Schon mal in die Hilfe geschaut? UDRes_Save und UDRes_SavePack sollten
doch selbsterklärend sein.

PS: Wenn die Hilfe im richtigen Ordner ist, kann man sie von der PB-IDE aus
aufrufen, auch Kontextsensitiv
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
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ts-soft hat geschrieben:PS: Wenn die Hilfe im richtigen Ordner ist, kann man sie von der PB-IDE aus
aufrufen, auch Kontextsensitiv
BTW: UDRes_Create() ist nicht als Topic in der Hilfe vorhanden.

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

Beitrag von ts-soft »

Kiffi hat geschrieben:
ts-soft hat geschrieben:PS: Wenn die Hilfe im richtigen Ordner ist, kann man sie von der PB-IDE aus
aufrufen, auch Kontextsensitiv
BTW: UDRes_Create() ist nicht als Topic in der Hilfe vorhanden.

Grüße ... Kiffi
Bild

:mrgreen:
Also Leute, was ist bei euch alles Kaputt :lol:
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
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ts-soft hat geschrieben::mrgreen:
mh, hätte schwören können, dass die Help des Zips, welches ich mir grade im
Büro gezogen habe, anders aussah...

Mal schauen, morgen bin ich schlauer ;-)

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

Beitrag von ts-soft »

Kiffi hat geschrieben:Mal schauen, morgen bin ich schlauer ;-)

Grüße ... Kiffi
Jeden Tag biste schlauer, wenn Du postings von mir liest :mrgreen:
Hab die Hilfe vor ein paar Tagen geändert, aber nur die Structure verfeinert.
Also in Creation und Using aufgeteilt, Inhaltlich hat sich nichts geändert,
bis auf ein bissel einfärben :wink:
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
Marie23
Beiträge: 49
Registriert: 31.05.2008 18:14

Beitrag von Marie23 »

Okay, danke.

Dann entpack ich die DLL aus der RES und lad sie dann ins Programm und lösch sie am Ende wieder.
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 »

Marie23 hat geschrieben:Dann entpack ich die DLL aus der RES und lad sie dann ins Programm und lösch sie am Ende wieder.
Wenn die DLL die einzige Resource ist und Du sie nur wieder herstellst, bzw.
die DLL nicht allzu groß ist, lohnt es evtl. garnicht die Lib zu nutzen.

Die Lib dient ja als ersatz für IncludeBinary, weil dadurch Resourcen
Speicher gespart wird (50%)

Aber bei nur einer DLL wären alle Vorteile fürn Arm :mrgreen:

Dann kannste es auch so machen:

Code: Alles auswählen

DataSection
  DLLstart:
  IncludeBinary "MyDLL.dll" ; <--- anpassen
  DLLend:
EndDataSection

Procedure SaveDLL()
  Protected DLLPath.s = GetTemporaryDirectory() + "MyDLL.dll" ; <--- Namen anpassen
  Protected File.l = CreateFile(#PB_Any, DLLPath)
  
  If File
    WriteData(File, ?DLLstart, ?DLLend - ?DLLstart)
    CloseFile(File)
    ProcedureReturn #True
  EndIf
  
EndProcedure

Procedure DeleteDLL()
  Protected DLLPath.s = GetTemporaryDirectory() + "MyDLL.dll" ; <--- Namen anpassen
  
  If DeleteFile(DLLPath)
    ProcedureReturn #True
  EndIf
EndProcedure
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 »

der unterschied scheint nicht ganz klar geworden zu sein....

eine DLL ist eine Befehlsbibliothek, die man extra einbinden muss,
und gesondert ansprechen muss, und dann stehen einem alle Befehle der Lib zur verfügung.

eine Userlib stellt eine Befehlsbibliothek befehlsweise zur verfügung,
es wird immer nur der code als SubProcedure in die Exe eingebunden,
die auch aufgerufen wird.
...als nachteil wird der originalcode weniger kompatibel:
man muss die selbe UserLib im selben Ordner haben, um den Hauptcode compilieren zu können.
und bei Versionswechsel der Hauptlibs erweisen sich viele UserLibs als überarbeitungsbedürftig.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten