[Résolu]Problème lors de la création d'un fichier resident

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
boddhi
Messages : 596
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

[Résolu]Problème lors de la création d'un fichier resident

Message par boddhi »

Bonjour à tous,

J'ai besoin d'aide concernant la création de fichiers resident.
Voilà, je souhaite réactualiser un vieux développement de 2010 (réalisé sous PB4.51 x86) pour lequel j'avais créé, à l'époque, un fichier resident à l'aide de tailbite.

Cet outil n'étant plus supporté pour les récentes versions de PB, j'ai tenté de le faire via le compilateur (sous PB 5.60 x64) avec une ligne de commande, selon les directives de l'aide, ainsi rédigée :

Code : Tout sélectionner

pbcompiler FichierSource /RESIDENT FichierResidentCible 
Aucun souci lors de la création.
En revanche, après déplacement du fichier dans le répertoire UserLibraries, lors du redémarrage du compilateur, le message suivant apparaît :

Code : Tout sélectionner

La bibliothèque PureBasic 'FichierResidentCible' est trop ancienne et n'est plus gérée par PureBasic 5.20 ou au-dessus
Je précise que le fichier source ne contient que des constantes et des structures.
J'ai essayé à tout hasard avec l'option /UNICODE. Même résultat !!! :(

Malgré mes recherches sur les forums, je n'ai pas trouvé d'info sur un éventuel problème de ce type.

Quelqu'un aurait-il un début d'explication ?
Merci d'avance pour votre aide et votre avis éclairé...
Dernière modification par boddhi le lun. 12/févr./2018 1:23, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Problème lors de la création d'un fichier resident (.res

Message par falsam »

L'occasion de tester MLF http://www.purebasic.fr/french/viewtopi ... =3&t=16953
Coche uniquement l'option resident.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
boddhi
Messages : 596
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Problème lors de la création d'un fichier resident (.res

Message par boddhi »

Bonsoir Falsam,

:wink: J'ai passé l'AM à tester ton développement, à lire tous les posts à son sujet (je profite par ailleurs de l'occasion pour te féliciter et te remercier, ainsi que tous ceux qui y ont concouru :D ) pour cet outil.

Hélas, le resident n'est pas créé quand bien même la case Resident est cochée !??

J'en profite aussi pour te signaler un petit souci que je rencontre avec ton utilitaire : Les libellés d'aide ne sont pas correctement repris pour chaque ProcedureDLL. Chaque ProcedureDLL se voit affecter le libellé d'aide de la dernière ProcedureDLL. Pourtant, comme le source DESC les reprend conformément au code source (hormis un souci avec les caractères accentués => Pb avec UNICODE ??)
Ci-dessous, le source DESC obtenu :
ASM
0
OBJ
9

; 9 Dependancies
String
Memory
Math
FileSystem
File
Object
SimpleList
Date
Array

; Your help file
HelpFileName

; Procedure summary

; ProcedureDLL.b EXIFSetDate(Fichier.s, Type.b, Date.l)
EXIFSetDate, String, Byte, Long, (Fichier.s , Type.b , Date.l) - Modifie la ou les dates EXIF d'une image JPEG
Byte | StdCall | Unicode

; ProcedureDLL.b EXIFSetText(Fichier.s, Type.b, Chaine.s)
EXIFSetText, String, Byte, String, (Fichier.s , Type.b , Chaine.s) - Modifie certaines informations textes d'une image JPEG
Byte | StdCall | Unicode

; ProcedureDLL.i EXIFRead(Fichier.s, *EXIF.EXIF)
EXIFRead, String, Quad, (Fichier.s , *EXIF.EXIF) - Fournit des informations sur la biblioth�que EXIFRead
Long | StdCall | Unicode

; ProcedureDLL.s EXIFReadVersion()
EXIFReadVersion, () - Fournit des informations sur la biblioth�que EXIFRead
String | StdCall | Unicode
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Problème lors de la création d'un fichier resident (.res

Message par falsam »

Quel version du compilateur utilises tu ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
boddhi
Messages : 596
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Problème lors de la création d'un fichier resident (.res

Message par boddhi »

Pb 5.60 x64 (j'ai repris mon code sous cette version et n'ai pas encore pris le temps d'installer la 5.61) et la version 1.51 beta de ton utilitaire...
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Problème lors de la création d'un fichier resident (.res

Message par Zorro »

tu peux essayer EPB , mon editeur
qui propose de faire un resident ;)

http://michel.dobro.free.fr/STLINE/down ... on/29-epb/

Faire F8 au premier lancement pour specifier le chemin vers les compilos (32 et 64 bits )

des fois on sait jamais, peut etre que ça va marcher ... ? :)
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
boddhi
Messages : 596
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Problème lors de la création d'un fichier resident (.res

Message par boddhi »

Merci Zorro, cela fonctionne !

Peux-tu me dire quelle est la syntaxe de ta ligne de commande qui aboutit à la création du fichier .res ?
boddhi
Messages : 596
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Problème lors de la création d'un fichier resident (.res

Message par boddhi »

@falsam

:oops: Je n'ai peut-être pas bien compris comment fonctionne le processus de création des fichiers resident avec ton utilitaire...
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Problème lors de la création d'un fichier resident (.res

Message par falsam »

Les accents tu peux résoudre je pense facilement le souci.
- Ouvre ton source.
- Menu Fichier -> Format du fichier -> Encodage UTF8

Je n'avais pas fait attention mais effectivement sur une de mes bibliothèque utilisateur j'ai une inversion de libellé d'aide !!

Et pour finir : J'ai supprimé un de mes résidents pour voir si j'arrivais à le recréer et effectivement .... BUG !!
Configuration : Windows 11 Famille 64-bit - PB 6.03 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
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Problème lors de la création d'un fichier resident (.res

Message par falsam »

Petit code pour créer un résident.

Code : Tout sélectionner

Define CompilPB.s  = #PB_Compiler_Home + "Compilers\pbcompiler.exe "
Define CompilFlag  = #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide
Define PBFileName.s, RSFileName.s, Compiler

PBFileName.s  = OpenFileRequester("Selectionner un fichier ...", "", "PureBasic file | *.pb;*.pbi", 0) 

If PBFileName
  RSFileName = #PB_Compiler_Home + "Residents\" + RemoveString(GetFilePart(PBFileName), "." + GetExtensionPart(PBFileName)) + ".res"
    
  Debug RSFileName
  
  Compiler = RunProgram(CompilPB, #DQUOTE$ + PBFileName + #DQUOTE$ + " /RESIDENT " + #DQUOTE$ +  RSFileName + #DQUOTE$, "", CompilFlag)  
  
  If Compiler
    While ProgramRunning(Compiler)
      If AvailableProgramOutput(Compiler)
        Debug ReadProgramString(Compiler)          
      EndIf
    Wend
    CloseProgram(Compiler)
  EndIf 
EndIf
A compiler ou exécuter avec l'option admin cochée dans les paramétrés de compilation.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
boddhi
Messages : 596
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Problème lors de la création d'un fichier resident (.res

Message par boddhi »

falsam a écrit :Petit code pour créer un résident.
Dans l'intervalle, j'ai finalement réussi à créer mon fichier resident (merci tout de même :wink: ).

Je ne comprends néanmoins pas l'usage de l'option /IGNORERESIDENT explicitée dans l'aide PB (l'option /CREATERESIDENT également citée n'existe pas par ailleurs).
Je pensais qu'elle permettait de ne pas tenir compte des déclarations (constantes, structures, etc...) d'un fichier .res déjà existant et l'écraser par une nouvelle version mais que nenni, j'obtiens systématiquement une 'syntax error on line 1' => ???? :(

Donc pour le moment (et pour les newbies comme moi que cela pourrait interesser :) ), je compile avec un

Code : Tout sélectionner

PbCompiler "FichierSourcePB" /RESIDENT "FichierCibleRES.res" 
en prenant bien soin de supprimer manuellement le "FichierCibleRES.res" si déjà préexistant dans le répertoire 'Residents'
boddhi
Messages : 596
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Problème lors de la création d'un fichier resident (.res

Message par boddhi »

Pour information, j'ai eu un étrange bug mais hélas comme j'ai chargé tour à tour le code source de ma lib et dans EPB de Zorro et dans MLF de Falsam, que je ne m'en suis pas aperçu tout de suite, je ne saurai donc dire d'où il vient ni comment le reproduire...

A un moment, mes ProcedureDLL (et uniquement celles-ci, pas les Procedure) - qui commencent toutes par EXIF (EXIFRead, EXIFSetDate,...) - ont vu leur nom totalement ou partiellement remplacé par des noms d'autres instructions PB commençant par EXP, et uniquement pour la longueur du nom des miennes.
Par exemple, EXIFReadVersion (15 caractères) par EXPlorerListGad, EXIFSetDate par EXPortJSONe, etc...

Et cela par deux fois.
Répondre