et ensuite de les utiliser en tant que son / image ou encore
de les extraire sur le disque dur.
Créez un ficher texte ayant pour extension RC
Inclure ce fichier en tant que ressource, type RCData
Le chemin des fichiers peut être relatif ou absolu
Exemple de fichier RC :
REG RCData "C:\WINDOWS\REGEDIT.EXE"
SON RCData "son.wav"
IMAGE RCData "image.bmp"
Code : Tout sélectionner
;/ SaveResourceAs(Name.s,File.s) Save the resource as a file
;/ GetResourcePointer(Name.s) is usefull with PureBasic CatchXXX functions (CatchImage / CatchSound ... )
ProcedureDLL SaveResourceAs(Name.s,File.s)
; (Use GetModuleHandle_ if you want to specify another file)
HandleResource= FindResource_(0,@Name,#RT_RCDATA)
If HandleResource
HandleGlobalMemoryBlock=LoadResource_(0,HandleResource)
PointerFirstByteOfTheResource=LockResource_(HandleGlobalMemoryBlock)
; Get size of the resource
Size= SizeofResource_(Handle,HandleResource)
; Save the file
FileId=OpenFile(#PB_Any,File)
If FileId
WriteData(HandleGlobalMemoryBlock,Size)
CloseFile(FileId)
EndIf
; Test if the file is written
If FileSize(File)=Size
ProcedureReturn 1
EndIf
EndIf
EndProcedure
ProcedureDLL GetResourcePointer(Name.s)
; (Use GetModuleHandle_ if you want to specify another file)
HandleResource= FindResource_(0,@Name,#RT_RCDATA)
If HandleResource
HandleGlobalMemoryBlock=LoadResource_(0,HandleResource)
PointerFirstByteOfTheResource=LockResource_(HandleGlobalMemoryBlock)
ProcedureReturn HandleGlobalMemoryBlock
EndIf
EndProcedure
ProcedureDLL GetResourceSize(Name.s)
; (Use GetModuleHandle_ if you want to specify another file)
HandleResource= FindResource_(0,@Name,#RT_RCDATA)
If HandleResource
HandleGlobalMemoryBlock=LoadResource_(0,HandleResource)
PointerFirstByteOfTheResource=LockResource_(HandleGlobalMemoryBlock)
; Return the size of the resource
Size= SizeofResource_(Handle,HandleResource)
ProcedureReturn Size
EndIf
EndProcedure