ich will ein Bild per Windows API laden und dann weiterverarbeiten. Hintergrund ist mein RibbonGadget, das auch als DLL für XProfan bereit stehen soll. Das Bild wird in dem Fall vom XProfan-Programm geladen und an die DLL übergeben. Das hat auch erst funktioniert, jetzt habe ich aber eine ganze Menge geändert und plötzlich klappt es nicht mehr. ich habe meine Backups durchgesehen und konnte an den Stellen, die ich für entscheidend halte, keine Unterschiede feststellen.
Lange Rede, kurzer Sinn: Das Problem ist, dass GetObject_() immer 0 zurückgibt, also fehlschlägt. Deshalb kann das (für die DLL externe) Bild nicht weiterverwendet werden. In der DLL sollen Eigenschaften wie Breite und Höhe per GetObject_() ausgelesen werden (wie gesagt, das schlägt fehl). Mein Ablauf ist in etwa Bild -> GetObject_() -> StartDrawing() auf Zielbild -> DrawImage() auf Zielbild (ImageID vom Quellbild entfällt, weil es ja ein Handle und keine ID ist).
Jetzt habe ich ein minimales Beispiel geschrieben. Mit Bitmaps funktioniert GetObject, mit Icons aber nicht:
Code: Alles auswählen
image=LoadImage_(GetModuleHandle_(0),"D:\PureBasic\Ribbon\Icon1.ico",#IMAGE_ICON,1080,1080,#LR_LOADFROMFILE)
Debug image
Debug GetObject_(image,SizeOf(bitmap),@bm.bitmap)
Nochmal zusammengefasst: Das aufrufende Programm übergibt das Handle eines Bildes (erzeugt mit LoadImage_()) an die DLL. Die soll das Bild in ein neues Bild, das mit PureBasic-Befehlen erstellt wurde, kopiert werden.
Kann mir da jemand helfen?