Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
Kriegt man aus den ID's wieder die dazugehörigen PB_Nummern ?
Also aus der ImageID(Image) wieder das Image ?
Geht mir im allgemeinen um DLL - Programmierung :
wie z.B. kann ich auf ein Bild Zeichnen das das Hauptprogramm erstellt hat.
Wenn ich der DLL die Imagenummer übergebe klappt nix, also denke ich muss ich die ImageID()
"rüberbringen".
StartDrawing erwartet ja nun beim ImageOutput usw eine PB Nummer... keine ID.
Wie krieg ich das also hin, auf ein Image zu zeichnen von dem ich nur die ImageID habe.... ?
Also aus der ImageID(Image) wieder das Image ?
Geht mir im allgemeinen um DLL - Programmierung :
wie z.B. kann ich auf ein Bild Zeichnen das das Hauptprogramm erstellt hat.
Wenn ich der DLL die Imagenummer übergebe klappt nix, also denke ich muss ich die ImageID()
"rüberbringen".
StartDrawing erwartet ja nun beim ImageOutput usw eine PB Nummer... keine ID.
Wie krieg ich das also hin, auf ein Image zu zeichnen von dem ich nur die ImageID habe.... ?
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
- 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: Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
Neues Bild erstellen, das alte draufzeichnen (mit der ImageID) und schon kannste drin rumwurschteln.
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.

Re: Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
Nein,Kriegt man aus den ID's wieder die dazugehörigen PB_Nummern?
wenn das Image von PB wäre, könntest du ja deren Nummer selbst ermitteln,
und wenn es nicht von PB ist, hat es keine Nummer.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
@stargate: Das Bild wird ja mit PB gezeichnet, vom Hauptprogramm.
@ts: Ist das nicht ein Problem, weil ich das Originalbild ja nicht wieder loswerde ? (Memoryleak?)
und dann hätt ich ja wiederum das gleiche Problem andersherum, dass ich im Hauptprogramm dann wieder
ein Image habe ohne PB Nummer... und so stapelt sich das ganze... oder nicht ?
Edit: FreeImage() erwartet ja auch wieder eine PB Nummer....
@ts: Ist das nicht ein Problem, weil ich das Originalbild ja nicht wieder loswerde ? (Memoryleak?)
und dann hätt ich ja wiederum das gleiche Problem andersherum, dass ich im Hauptprogramm dann wieder
ein Image habe ohne PB Nummer... und so stapelt sich das ganze... oder nicht ?
Edit: FreeImage() erwartet ja auch wieder eine PB Nummer....
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
Re: Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
Na dann kannst du doch deren Nummer nutzen.stargate: Das Bild wird ja mit PB gezeichnet, vom Hauptprogramm.
Verstehe irgendwie nicht warum du in der DLL mit der ID arbeitest.
Du übergibst der DLL ganz normal die ImageID, und zeichnest es in das in der DLL erstellte Image.
Das Hauptprogramm kann dein Image selber loswerden und die DLL auch.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
Bisonte hat geschrieben:Wenn ich der DLL die Imagenummer übergebe klappt nix, also denke ich muss ich die ImageID()
"rüberbringen"
Das liegt daran das die DLL ihre eigene interne Liste hat, also dort auch nichts findet. Probier es mal mit #pb_any.
Re: Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
@Stargate: Nochmal zum Verständnis: Das Hauptprogramm hat ein Image mit CreateImage(0,110,25) erstellt und in
einer Prozedur innerhalb der DLL soll es bearbeitet werden, damit ich es im Hauptprogramm weiter verwenden kann.
Mit der Übergabe an die DLL-Procedure von der PB_Nummer hat es nicht geklappt.
Nur mit der ImageID ...
@edel:
Seltsamerweise funktioniert es wenn ich mit CreateImage(#PB_Any...) erstelle
So klappts. Aber ist das jetzt nur zufall, oder ist das normal ?
Und wieso gab es immer IMA (wegen weil Image not Initialized) bei CreateImage(0,....) ?
Fragen über Fragen ....
einer Prozedur innerhalb der DLL soll es bearbeitet werden, damit ich es im Hauptprogramm weiter verwenden kann.
Mit der Übergabe an die DLL-Procedure von der PB_Nummer hat es nicht geklappt.
Nur mit der ImageID ...
@edel:
Seltsamerweise funktioniert es wenn ich mit CreateImage(#PB_Any...) erstelle

So klappts. Aber ist das jetzt nur zufall, oder ist das normal ?
Und wieso gab es immer IMA (wegen weil Image not Initialized) bei CreateImage(0,....) ?
Fragen über Fragen ....

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
Re: Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
Und wenn du die OutputID übergibst, dass müsste eigentlich funktionieren.
also ImageOutput(#Image) an die DLL übergeben und dort dann einfach in StartDrawing benutzen, wenn es wirklich nur ums "benutzen" geht.
also ImageOutput(#Image) an die DLL übergeben und dort dann einfach in StartDrawing benutzen, wenn es wirklich nur ums "benutzen" geht.
Vielleicht wäre es an der Zeit doch mal ein Code dazu zu posten ... damit wir dein Problem besser nachvollziehen können.Seltsamerweise funktioniert es wenn ich mit CreateImage(#PB_Any...) erstelle
So klappts. Aber ist das jetzt nur zufall, oder ist das normal ?
Und wieso gab es immer IMA (wegen weil Image not Initialized) bei CreateImage(0,....) ?
Fragen über Fragen ....
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
Das ist normal und auch nicht seltsam, deswegen hat edel es ja vorgeschlagen.Bisonte hat geschrieben: Seltsamerweise funktioniert es wenn ich mit CreateImage(#PB_Any...) erstelle![]()
So klappts. Aber ist das jetzt nur zufall, oder ist das normal ?
PureBasic führt intern eine List der Nummern, DLL und EXE haben dabei getrennte listen. Die ID, welche mit PB_Any zurückgegeben wird gehöhrt nicht zur Liste, das ist einfach ein Memory Pointer und kann von daher von der DLL verwendet werden um auf die Image Struktur zuzugreifen.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!

Re: Die ID's und PB Nummern : StartDrawing() Ohne PBNummer ?
danke für die ausführliche Erklärung...
Ich denke das gleiche gilt für andere PB Nummern wie z.B Sounds, Windows usw die ebenfalls per #PB_ANY erstellt worden sind.
Ich denke das gleiche gilt für andere PB Nummern wie z.B Sounds, Windows usw die ebenfalls per #PB_ANY erstellt worden sind.
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