Bitmap von einer dll/Exe (Resource)
Verfasst: 14.10.2012 15:32
Hallo
Wie kann ich eine Bitmap mittels Resourcen ( kein RCData) von einer exe bzw dll in einer Gui anzeigen ?
Hab hier was gefunden, das funktioniert nicht 100%.
Die Anzeige ist verschoben, kann das jemand korrigieren ?
oder gibt es eine einfachere Lösung ?
Grüße
lite
Wie kann ich eine Bitmap mittels Resourcen ( kein RCData) von einer exe bzw dll in einer Gui anzeigen ?
Hab hier was gefunden, das funktioniert nicht 100%.
Die Anzeige ist verschoben, kann das jemand korrigieren ?
oder gibt es eine einfachere Lösung ?
Code: Alles auswählen
ProcedureDLL.l GetResourcePointer(Name.s, TypeRes = #RT_RCDATA, dll.s = "")
If dll And FileSize(dll) > 0
hModule = LoadLibrary_(dll)
Else
hModule = GetModuleHandle_(0)
EndIf
hResource= FindResource_(hModule,@Name,TypeRes)
If hResource
hGlobalMemBlock=LoadResource_(hModule,hResource)
SizeRes = SizeofResource_(hModule, hResource)
*MemoryID = AllocateMemory(SizeRes + 14)
For i=0 To 13
Read.b y.b
PokeB(*MemoryID+i, y)
Next
CopyMemory(hGlobalMemBlock, *MemoryID+14, SizeRes)
FreeResource_(hGlobalMemBlock)
FreeLibrary_(hModule)
ProcedureReturn *MemoryID
EndIf
FreeLibrary_(hModule)
EndProcedure
pRes = GetResourcePointer("#131", #RT_BITMAP, "C:\WINDOWS\system32\Shell32.dll")
;Debug(Str(pRes))
MemorySize(pRes)
CatchImage(0, pRes)
FreeMemory(pRes)
; MessageRequester("Debug","Pause",262144)
OpenWindow(0,0,0,440,440,"ImageGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ImageGadget (2, 0, 0, 200, 280, 0)
SendMessage_( GadgetID(2), #STM_SETIMAGE, #IMAGE_BITMAP, ImageID(0))
ImageGadget(0,20,120,200,200,ImageID(0))
FreeImage(0)
Repeat : Event=WaitWindowEvent() : Until Event = #PB_Event_CloseWindow
DataSection
HEADER:
Data.b $42, $4D, $92, $13, $00, $00, $00, $00, $00, $00, $76, $00, $00, $00
EndDataSection
End
lite