Page 1 sur 2
"Syntex error" avec un function :(
Publié : sam. 12/sept./2015 16:12
par celtic88
Slt tout le monde
quelqu'un peut me dir pourquoi je reçois cette error : "Syntex error"
Code : Tout sélectionner
Structure Resourceinfo
*Bufferfile
Filesize.i
EndStructure
Define Superimage.Resourceinfo
Procedure _GetResource(hGetModuleHandle,Resinfo.Resourceinfo,ResName.s)
Protected FindRs=FindResource_(hGetModuleHandle,ResName,10)
Resinfo\Filesize=SizeofResource_(hGetModuleHandle,FindRs)
Protected LoadRs=LoadResource_(hGetModuleHandle,FindRs)
*Resinfo\Bufferfile=LockResource_(LoadRs)
EndProcedure
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 16:18
par falsam
Bonjour et bienvenu Celtic.
de cette maniere peut être ?
Code : Tout sélectionner
Structure Resourceinfo
*Bufferfile
Filesize.i
EndStructure
Define Superimage.Resourceinfo
Procedure _GetResource(hGetModuleHandle, *Resinfo.Resourceinfo,ResName.s)
Protected FindRs=FindResource_(hGetModuleHandle,ResName,10)
*Resinfo\Filesize=SizeofResource_(hGetModuleHandle,FindRs)
Protected LoadRs=LoadResource_(hGetModuleHandle,FindRs)
*Resinfo\Bufferfile=LockResource_(LoadRs)
EndProcedure
Tuto sur les structures dans lequel il est indiqué comment passer une structure dans une procédure.
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 16:49
par nico
Oui, tu ne peux pas mettre de variable structurée dans les fonctions, il faut que ce soit des pointeurs, d'où la modification de Falsam: Resinfo.Resourceinfo par *Resinfo.Resourceinfo.
Donc il faudra pour ce paramètre de la fonction passer une adresse.
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 16:52
par celtic88
et ca marche

, merci bcp pour ton aide comme tu vois je suis debutant dans cette merrveilleux langage je tien a féliciter son createur <3
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 17:01
par celtic88
je vais utiliser ce code comme ça esque j ai pas tort
Code : Tout sélectionner
Structure Resourceinfo
*Bufferfile
Filesize.i
EndStructure
Define MasuperImage.Resourceinfo
Procedure _GetResource(hGetModuleHandle,*Resinfo.Resourceinfo,ResName.s)
Protected FindRs=FindResource_(hGetModuleHandle,ResName,10)
*Resinfo\Filesize=SizeofResource_(hGetModuleHandle,FindRs)
Protected LoadRs=LoadResource_(hGetModuleHandle,FindRs)
*Resinfo\Bufferfile=LockResource_(LoadRs)
EndProcedure
Define GetModuleHandle=GetModuleHandle_(0)
_GetResource(GetModuleHandle,MasuperImage,"IMAGEBIN")
Define Opf=OpenFile(#PB_Any,"MasuperImage.jpg")
WriteData(Opf,*MasuperImage\Bufferfile,MasuperImage\Filesize)
CloseFile(Opf)
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 17:38
par falsam
celtic88 a écrit :e vais utiliser ce code comme ça esque j ai pas tort
je ne connais pas ton code complet. Mais je pense tu as tord.
Au moins une raison :
Code : Tout sélectionner
WriteData(Opf, *MasuperImage\Bufferfile,MasuperImage\Filesize)
Comment tu initialises MasuperImage\Filesize ?
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 17:45
par celtic88
falsam a écrit :celtic88 a écrit :e vais utiliser ce code comme ça esque j ai pas tort
je ne connais pas ton code complet. Mais je pense tu as tord.
Au moins une raison :
Code : Tout sélectionner
WriteData(Opf, *MasuperImage\Bufferfile,MasuperImage\Filesize)
Comment tu initialises MasuperImage\Filesize ?
ollla ,,,,je suis un peu perdue la! ase ta un documentation pour cela ? est désolée pour mon francais

Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 17:57
par celtic88
wa333, please any help !
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 18:14
par celtic88
@falsam merci l amie pour ton aide j ai trouve la solution en re lisant "Pointeurs et accès mémoire" ,,,en fait il faux passer l adresse de la variable structureriser a la function
Structure Resourceinfo
*Bufferfile
Filesize.i
EndStructure
Define MasuperImage.Resourceinfo
Procedure _GetResource(hGetModuleHandle,*Resinfo.Resourceinfo,ResName.s)
Protected FindRs=FindResource_(hGetModuleHandle,ResName,10)
*Resinfo\Filesize=SizeofResource_(hGetModuleHandle,FindRs)
Protected LoadRs=LoadResource_(hGetModuleHandle,FindRs)
*Resinfo\Bufferfile=LockResource_(LoadRs)
EndProcedure
Define GetModuleHandle=GetModuleHandle_(0)
_GetResource(GetModuleHandle,@MasuperImage,"IMAGEBIN")
Define Opf=OpenFile(#PB_Any,"MasuperImage.jpg")
WriteData(Opf,MasuperImage\Bufferfile,MasuperImage\Filesize)
CloseFile(Opf)
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 18:18
par celtic88
mai

la "MasuperImage\Bufferfile" est variable type point pour quoi on ne peut pas ajouter l "*" en tete ,,,aa

Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 18:23
par celtic88
Spock a écrit :en meme temps, si la structure ne sert qu'a cette procedure
autant l'inclure dedans
Code : Tout sélectionner
Procedure _GetResource(hGetModuleHandle,ResName.s)
Structure Resourceinfo
Bufferfile.i
Filesize.i
EndStructure
Resinfo.Resourceinfo
Protected FindRs
Protected LoadRs
FindRs=FindResource_(hGetModuleHandle,ResName,10)
Resinfo\Filesize.i=SizeofResource_(hGetModuleHandle,FindRs)
LoadRs=LoadResource_(hGetModuleHandle,FindRs)
Resinfo\Bufferfile=LockResource_(LoadRs)
EndProcedure
;
; Epb
est comment puis je savoirs le point et le size de mon resource pour l utiliser apres?
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 18:50
par falsam
@celtic88: Where do you come from ?
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 18:54
par celtic88
Spock a écrit :celtic88 a écrit :
est comment puis je savoirs le point et le size de mon resource pour l utiliser apres?
SHARED !!
Code : Tout sélectionner
Procedure _GetResource(hGetModuleHandle,ResName.s)
Structure Resourceinfo
Bufferfile.i
Filesize.i
EndStructure
Shared Resinfo.Resourceinfo
Protected FindRs
Protected LoadRs
FindRs=FindResource_(hGetModuleHandle,ResName,10)
Resinfo\Filesize.i=SizeofResource_(hGetModuleHandle,FindRs)
LoadRs=LoadResource_(hGetModuleHandle,FindRs)
Resinfo\Bufferfile=LockResource_(LoadRs)
; je vais mettre une valeur bidon dans la structure , histoire de montrer que ça transmet bien dehors de la procedure grace a Shared
Resinfo\Filesize.i=888
EndProcedure
; appel de la procedure
_GetResource(88,"toto")
debug "ho miracle .... ça marche !! la valeur est" + str(Resinfo\Filesize.i)
calldebugger
ah tree bien !mai c est pas l ideal sa, imagine ci je veut obtenir plusieurs fichiers par ex:
Structure Resourceinfo
*Bufferfile
Filesize.i
EndStructure
Define MasuperImage.Resourceinfo
Define MasuperImageTow.Resourceinfo
Define MasuperImageTre.Resourceinfo
Procedure _GetResource(hGetModuleHandle,*Resinfo.Resourceinfo,ResName.s)
Protected FindRs=FindResource_(hGetModuleHandle,ResName,10)
*Resinfo\Filesize=SizeofResource_(hGetModuleHandle,FindRs)
Protected LoadRs=LoadResource_(hGetModuleHandle,FindRs)
*Resinfo\Bufferfile=LockResource_(LoadRs)
EndProcedure
Define GetModuleHandle=GetModuleHandle_(0)
_GetResource(GetModuleHandle,@MasuperImage,"IMAGEBIN")
Define GetModuleHandle=GetModuleHandle_(0)
_GetResource(GetModuleHandle,@MasuperImageTow,"IMAGEBIN2")
Define GetModuleHandle=GetModuleHandle_(0)
_GetResource(GetModuleHandle,@MasuperImageTre,"IMAGEBIN3")
Define Opf=OpenFile(#PB_Any,"MasuperImage.jpg")
WriteData(Opf,MasuperImage\Bufferfile,MasuperImage\Filesize)
CloseFile(Opf)
;;;;;
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 18:56
par celtic88
falsam a écrit :@celtic88: Where do you come from ?
algeria
Re: "Syntex error" avec un function :(
Publié : sam. 12/sept./2015 19:02
par falsam
celtic88 a écrit :algeria
Ok merci
celtic88 a écrit : please any help !
celtic88 a écrit :est désolée pour mon francais
If you prefer to speak English, there is a forum in English.
http://www.purebasic.fr/english/index.php