Grafiken erstellen in einer DLL

Für allgemeine Fragen zur Programmierung mit PureBasic.
Velox
Beiträge: 39
Registriert: 18.09.2011 18:02

Grafiken erstellen in einer DLL

Beitrag von Velox »

Seit mehr als 6 Monate beschäftige ich mich jetzt intensiv mit DynamicLinkLibraries.
Heute schaffe ich es nicht weiter in diesem Thema voran zu gelangen.

Ich kann Wörter, Sätze und Grafiken (als Binaries) sowie Werte aus DLLs lesen, nur wieso kann ich keine
Grafiken in einer DLL erstellen und beim Aufruf mit Prototype anzeigen lassen?

Hier mal ein paar Beispiele wie ich Dinge aus einer DLL lese:

Wörter
Prototype DLLInfo(Param1)
Info.DLLInfo = GetFunction(0, Function)
Debug PeekS(Info(0))

Grafik
Prototype DLLGraphics(Param1)
GFX.DLLGraphics = GetFunction(0, Function)
Graphic = GFX(0)
CatchImage(0, Graphic)


Hat jemand da eine Idee?


Grüße
Benutzeravatar
HeX0R
Beiträge: 3070
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Grafiken erstellen in einer DLL

Beitrag von HeX0R »

Die DLL hat eigene Indexlisten.
Also alles, was per Index angesprochen wird, wie Windows, Grafiken, Sprites, Gadgets, usw.. kann mit PB nur dort bearbeitet werden, wo es erstellt wurde.
Es ist also möglich sowohl im Hauptprogramm CreateImage(0, ...), als auch in der DLL CreateImage(0, ...) auszuführen und in jede Grafik ein anderes Bild hineinzupacken.

Du kannst aber das Handle übergeben, also in deinem Fall die ImageID(#Index).
Es gibt ja ein paar PB-Befehle, die mit dem Handle arbeiten können (DrawImage z.B.)
Velox
Beiträge: 39
Registriert: 18.09.2011 18:02

Re: Grafiken erstellen in einer DLL

Beitrag von Velox »

Naja, für ein Projekt das ich hier einmal vorgestellt habe » http://www.purebasic.fr/german/viewtopi ... r+Elements , habe ich eine Developer Console geschrieben.
Diese beherrscht jetzt bereits ein gewaltiges Potential!

Man kann mit dieser DLLs auslesen, Info's über die Exe bekommen und einige andere nützliche Sachen anstellen.

Jetzt möchte ich genau diese extrahieren, also in eine DLL auslagern wodurch ich diese Developer Console auch in anderen Projekten verwenden kann.

Die Developer Console ist soweit es geht in einer PBI-Datei was das extrahieren vereinfachen sollte, nur will ich auch das Fenster dieser in der DLL selber erstellen und später durch Prototype in das Projekt integrieren.


Wie stellt man das am besten an?

@HeXOR
Deine Idee hat einen brauchbaren Ansatz, wäre da vlt eine eigene Grafik als IncludeBinary in der DLL selber die vorläufige Lösung?
Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: Grafiken erstellen in einer DLL

Beitrag von Bisonte »

Da ich mal von Windows als OS ausgehen (DLL), gibt es für Fenster noch die Möglichkeit,
später an die PB Interne Nummer, heranzukommen. Das gleiche gilt für Gadgets, Statusbars
und Toolbars. (PB klemmt die interne Nummer als "Property" an das jeweilige Objekt)

Das einzige was dann die DLL "rausrücken" muss, wäre das Handle des jeweiligen Objektes.

Im Hauptprogramm, dass die DLL aufruft, kann man dann die PB ID mithilfe meiner kleinen
Prozedur
ermitteln ...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten