CopyMemory kopiert nicht!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

CopyMemory kopiert nicht!

Beitrag von Velindos »

Hallo Leute,
gebe ein Bild in die Memory und wollte die anschliessend kopieren, geht aber nicht!

Code: Alles auswählen

; -----------------------------------------
; CopyMemory kopiert nicht!
; -----------------------------------------
Enumeration
  #InformentForYou
EndEnumeration
Global *ImageMemory
Global *RtgImageMemory
; --------------------- 
CatchImage(#InformentForYou, ?InformentForYou)
; --------------------- 
DataSection
  InformentForYou:
  IncludeBinary "D:\[Pure@API]\[STORE]\BMP\Arduino ButtonBild.bmp"
EndDataSection
; -----------------------------------------
*ImageMemory = EncodeImage(#InformentForYou,#PB_ImagePlugin_BMP)
ImageMemSize = MemorySize(*ImageMemory)
; -----------------------------------------
; *RtgImageMemory = EncodeImage(#InformentForYou,#PB_ImagePlugin_PNG , #PB_Image_FloydSteinberg,24)
; ImageMemSize = MemorySize(*RtgImageMemory)
; -----------------------------------------
; CopyMemory(*ImageMemory,*RtgImageMemory,MemorySize(*ImageMemory))
CopyMemory(*ImageMemory,*RtgImageMemory,@ImageMemSize)
; -----------------------------------------
Debug PeekB(*RtgImageMemory)
; -----------------------------------------
Jemand einen Tip?

Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: CopyMemory kopiert nicht!

Beitrag von Bisonte »

Wenn du die Fehlermeldung gelesen hättest, hättest du vermutlich bemerkt, dass kein Speicher für das Zielbild reserviert wurde.

Vor dem Copymemory() ein :

Code: Alles auswählen

*RtgImageMemory = AllocateMemory(ImageMemSize)
ist in dem Falle angesagt ...
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​​
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: CopyMemory kopiert nicht!

Beitrag von Velindos »

Hallo,
Danke für den Tip, sof funzt!

Code: Alles auswählen

; -----------------------------------------
; CopyMemory kopiert nicht!
; -----------------------------------------
Enumeration
  #InformentForYou
EndEnumeration
Global *ImageMemory
Global *RtgImageMemory
; --------------------- 
CatchImage(#InformentForYou, ?InformentForYou)
; --------------------- 
DataSection
  InformentForYou:
  IncludeBinary "D:\[Pure@API]\[STORE]\BMP\Arduino ButtonBild.bmp"
EndDataSection
; -----------------------------------------
*ImageMemory = EncodeImage(#InformentForYou,#PB_ImagePlugin_BMP)
; -----------------------------------------
; *RtgImageMemory = EncodeImage(#InformentForYou,#PB_ImagePlugin_PNG , #PB_Image_FloydSteinberg,24)
; ImageMemSize = MemorySize(*RtgImageMemory)
; -----------------------------------------
; CopyMemory(*ImageMemory,*RtgImageMemory,MemorySize(*ImageMemory))
; ImageMemSize = MemorySize(*ImageMemory)
; -----------------------------------------
*RtgImageMemory = AllocateMemory(MemorySize(*ImageMemory))
CopyMemory(*ImageMemory,*RtgImageMemory,MemorySize(*ImageMemory))
; -----------------------------------------
Debug PeekB(*RtgImageMemory)
; -----------------------------------------
Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten