Hallo ich hab unter Windows Xp folgendes Problem:
Ich erzeuge ein BitmapHandle mit Hilfe der Apifunktion LoadImage. Soweit so gut. Am Ende will ich als ordentlicher Mensch natürlich aufräumen und das Handle mit Hilfe der Api-Gdi-Funktion DeleteObject() wieder zerstören. Zum Erfolg bzw. Misserfolg der Funktion steht im MSDN folgendes:
Return Values
If the function succeeds, the return value is nonzero.
Windows NT/2000/XP: To get extended error information, call GetLastError.
Jedesmal wenn ich die Funktion durchführe bekomme ich 0 zurück also Misserfolg. Wenn ich dann GetLastError aufrufe komt auch 0 also ERROR_SUCCESS, The operation completed successfully.
Ist das Ding nun in die Hose gegangen oder nicht ???
Gibt es irgendne Möglichkeit herauszufinden wieviel Speicher nach Beenden des Profanproramms noch blcokiert ist ??
proc LoadImageEx
parameters res_instance&,img_name$,ident%,uType&,cx%,cy%,fuLoad&
declare h_image&
if @and(@neq(res_instance&,0),@equ$(img_name$,"")) 'Es handelt sich um ein Image aus dll Per Identifier
let h_image& = @LoadImage (res_instance&,ident%,uType&,cx%,cy%,fuLoad&)
elseif @and(@neq(res_instance&,0),@neq$(img_name$,"")) 'Es handelt sich um ein Image aus dll per Namen
let h_image& = @LoadImage (res_instance&,@AddR(img_name$),uType&,cx%,cy%,fuLoad&)
elseif @and(@equ(res_instance&,0),@neq$(img_name$,"")) 'Es handelt sich um ein Image direkt von der Platte
let h_image& = @LoadImage (res_instance&,@AddR(img_name$),uType&,cx%,cy%,fuLoad&)
elseif @and(@equ(res_instance&,0),@equ$(img_name$,"")) 'Es handlet sich um ein Standard Image
let h_image& = @LoadImage (res_instance&,ident%,uType&,cx%,cy%,fuLoad&)
endif
return h_image&
endproc
'Hauptprogramm
LoadImageEx 0,"verlauf.bmp",0,~IMAGE_BITMAP,0,0,~LR_LOADFROMFILE
Print "Handle:",@&(0)
Print "Zerstöre:",@DeleteObject(@&(0)),"Error ist:",@GetLastError()
waitkey
|