"Syntex error" avec un function :(

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

"Syntex error" avec un function :(

Message 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
.....i Love Pb :)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: "Syntex error" avec un function :(

Message 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
:arrow: Tuto sur les structures dans lequel il est indiqué comment passer une structure dans une procédure.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: "Syntex error" avec un function :(

Message 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.
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: "Syntex error" avec un function :(

Message par celtic88 »

et ca marche :D , merci bcp pour ton aide comme tu vois je suis debutant dans cette merrveilleux langage je tien a féliciter son createur <3
.....i Love Pb :)
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: "Syntex error" avec un function :(

Message 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)
.....i Love Pb :)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: "Syntex error" avec un function :(

Message 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 ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: "Syntex error" avec un function :(

Message 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 :oops:
.....i Love Pb :)
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: "Syntex error" avec un function :(

Message par celtic88 »

wa333, please any help !
.....i Love Pb :)
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: "Syntex error" avec un function :(

Message 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 8O
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)
.....i Love Pb :)
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: "Syntex error" avec un function :(

Message par celtic88 »

mai :P la "MasuperImage\Bufferfile" est variable type point pour quoi on ne peut pas ajouter l "*" en tete ,,,aa 8O
.....i Love Pb :)
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: "Syntex error" avec un function :(

Message 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?
.....i Love Pb :)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: "Syntex error" avec un function :(

Message par falsam »

@celtic88: Where do you come from ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: "Syntex error" avec un function :(

Message 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)

;;;;;
.....i Love Pb :)
Avatar de l’utilisateur
celtic88
Messages : 309
Inscription : sam. 12/sept./2015 14:31
Localisation : Alger

Re: "Syntex error" avec un function :(

Message par celtic88 »

falsam a écrit :@celtic88: Where do you come from ?
algeria
.....i Love Pb :)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: "Syntex error" avec un function :(

Message par falsam »

celtic88 a écrit :algeria
Ok merci :wink:
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.
:arrow: http://www.purebasic.fr/english/index.php
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre