Faire une UserLib uniquement en PB
- JohnJohnsonSHERMAN
- Messages : 648
- Inscription : dim. 13/déc./2015 11:05
- Localisation : Allez, cherche...
- Contact :
Re: Faire une UserLib uniquement en PB
Merci beaucoup G-Rom, ca ouvre un tas de possibilités
Du coup, si j'ai bien compris, on peut grâce à cela écrire des libs en C pour PB.... Intéressant
Du coup, si j'ai bien compris, on peut grâce à cela écrire des libs en C pour PB.... Intéressant
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
Votre expert national en bogage et segfaults.
CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
- Windows 10 x64 - PB 5.61 x64
- Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Re: Faire une UserLib uniquement en PB
Le dossier SDK montre comment faire ( dossier visualc ) je crois , en C le principe est le même, mais pas besoin de fasm, les compilos C/C++ génère très bien les .lib .objJohnJohnsonSHERMAN a écrit :Merci beaucoup G-Rom, ca ouvre un tas de possibilités
Du coup, si j'ai bien compris, on peut grâce à cela écrire des libs en C pour PB.... Intéressant
Re: Faire une UserLib uniquement en PB
Bravo G_Rom (même si je ne suis pas sûr d'avoir bien compris, enfin pas à 100%). Vous êtes un génie G_Rom, merci encore !
Win7 (x64) 64 bits Pb 5.72
Re: Faire une UserLib uniquement en PB
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Faire une UserLib uniquement en PB
Pourquoi le corbeau ? tu fait référence a quoi ?Zorro a écrit :
Génie ? je ne sais pas, merci quand mêmeomega a écrit :Bravo G_Rom (même si je ne suis pas sûr d'avoir bien compris, enfin pas à 100%). Vous êtes un génie G_Rom, merci encore !
Re: Faire une UserLib uniquement en PB
un corbeau qui a un Fromage dans le Bec ....G-Rom a écrit :Pourquoi le corbeau ? tu fait référence a quoi ?
aucune culture !!
omega te dit pour résumer :omega a écrit :Vous êtes un génie G_Rom, merci encore !
"que vous etes joli, que vous me semblez beau..sans mentir si votre ramage se rapporte a votre plumage
vous etes le phenix des hotes de ces bois "
alors , vas tu laisser tomber ton fromage ??
reference a la fable de LaFontaine "Le corbeau et le renard "
voila voila ...
devant tant de compliments, j'ai tout de suite pensé a ça ...
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
- Kwai chang caine
- Messages : 6962
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Faire une UserLib uniquement en PB
Moi GRom, je l'admire parce qu'il a atteint un niveau bien supérieur à une très grande partie de nous tous, et de ce que je sais juste par la force des ses petits poings musclés
Aussi parceque comme Bernadette il a parlé à dieu !!!! il a même codé un peu avec lui ....noooon pas chirac !!!
Qui ne rêverait pas de n'écrire ne serait ce que le l'instruction "End" dans un code généré par la machine de guerre FRED
Et je l'aime parce que sous ses paroles "vaseline outside" se cache "quinquin" de gentil au final, je crois de mémoire qu'il aide les gens..
Bref,génie, peut être, parce qu'en fin de compte, il ne se la pète pas, on ne sais pas vraiment ce qu'il fait et sait faire, mais quinquin de hors du commun, "intellectuellement burné", et même pas qu'intellectuellement je crois
Et pourtant savoir faire tout ça en informatique, c'était un sacré challenge, car il est parti avec un sacré handicap...il a été militaire
Voilà une personne qui met à mal le cliché comme quoi les militaires sont des brutes sans cervelle
Voici donc le portrait que je pourrais faire de ce grand monsieur qui m'a accueilli sous le pseudo de Cpl.Bator (avec l'oeil qui cligne) le premier jour (comme DOBRO ) ou j'ai eu l'idée de demander "cake" chose sur ce langage dans ce forum
Et pour le KCC ce genre de choses, elles sont gravées ...
Aussi parceque comme Bernadette il a parlé à dieu !!!! il a même codé un peu avec lui ....noooon pas chirac !!!
Qui ne rêverait pas de n'écrire ne serait ce que le l'instruction "End" dans un code généré par la machine de guerre FRED
Et je l'aime parce que sous ses paroles "vaseline outside" se cache "quinquin" de gentil au final, je crois de mémoire qu'il aide les gens..
Bref,génie, peut être, parce qu'en fin de compte, il ne se la pète pas, on ne sais pas vraiment ce qu'il fait et sait faire, mais quinquin de hors du commun, "intellectuellement burné", et même pas qu'intellectuellement je crois
Et pourtant savoir faire tout ça en informatique, c'était un sacré challenge, car il est parti avec un sacré handicap...il a été militaire
Voilà une personne qui met à mal le cliché comme quoi les militaires sont des brutes sans cervelle
Voici donc le portrait que je pourrais faire de ce grand monsieur qui m'a accueilli sous le pseudo de Cpl.Bator (avec l'oeil qui cligne) le premier jour (comme DOBRO ) ou j'ai eu l'idée de demander "cake" chose sur ce langage dans ce forum
Et pour le KCC ce genre de choses, elles sont gravées ...
Re: Faire une UserLib uniquement en PB
J'avais compris pour la fable, mais pas fait le rapprochement avec le com d'Omega.Zorro a écrit :un corbeau qui a un Fromage dans le Bec ....G-Rom a écrit :Pourquoi le corbeau ? tu fait référence a quoi ?
aucune culture !!
Merci, mais..., Dieu ? je suis devenu le Dieu de dieu alors, Fred à petit niveau en prog, comme au loto, il a tapé du bytecode a la main de façon random, ca lui a sorti un précompilateur, uniquement de la chance pour le coup ^^. il aurais mieux fait de jouer au lotoKwai chang caine a écrit :Moi GRom, je l'admire parce qu'il a atteint un niveau bien supérieur à une très grande partie de nous tous, et de ce que je sais juste par la force des ses petits poings musclés
Aussi parce qu'il a parlé à dieu !!!! il a même codé un peu avec lu
Re: Faire une UserLib uniquement en PB
@KCC je suis a court de Fable là
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
- Kwai chang caine
- Messages : 6962
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Faire une UserLib uniquement en PB
Juste pour le titre KCC avec PB c'est un peu "L'Âne et ses maîtres"
Mais juste pour le titre, hein !!!
Parce que la fable...je l'ai lue trois fois...et toujours pas comprise
Ca me rappelle les Prototruc de FRED
Bonne chance à ceux qui vont lire ça :
http://www.eternels-eclairs.fr/Poeme-Je ... es-MaitresLasource a écrit : L'Âne et ses Maîtres
L'Âne d'un Jardinier se plaignait au destin
De ce qu'on le faisait lever devant l'Aurore.
Les Coqs, lui disait-il, ont beau chanter matin ;
Je suis plus matineux encor.
Et pourquoi ? Pour porter des herbes au marché.
Belle nécessité d'interrompre mon somme !
Le sort de sa plainte touché
Lui donne un autre Maître ; et l'Animal de somme
Passe du Jardinier aux mains d'un Corroyeur.
La pesanteur des peaux, et leur mauvaise odeur
Eurent bientôt choqué l'impertinente Bête.
J'ai regret, disait-il, à mon premier Seigneur.
Encor quand il tournait la tête,
J'attrapais, s'il m'en souvient bien,
Quelque morceau de chou qui ne me coûtait rien.
Mais ici point d'aubaine ; ou, si j'en ai quelqu'une,
C'est de coups. Il obtint changement de fortune,
Et sur l'état d'un Charbonnier
Il fut couché tout le dernier.
Autre plainte. Quoi donc ! dit le Sort en colère,
Ce Baudet-ci m'occupe autant
Que cent Monarques pourraient faire.
Croit-il être le seul qui ne soit pas content ?
N'ai-je en l'esprit que son affaire ?
Le Sort avait raison ; tous gens sont ainsi faits :
Notre condition jamais ne nous contente :
La pire est toujours la présente.
Nous fatiguons le Ciel à force de placets.
Qu'à chacun Jupiter accorde sa requête,
Nous lui romprons encor la tête.
Re: Faire une UserLib uniquement en PB
@Zorro
J'espère que tu n'es pas jaloux cher Michel?? En fait, toi aussi tu es fort dans ce domaine, très fort même...
ça n'a rien à voir avec la fable du corbeau, car ce que je dis je le pense vraiment ...
En vérité, je crois que (si je ne me trompe pas) il y a environ une dizaine parmi les membres de ce forum qui font partie de la tête de liste,
environ 70% des membres au milieu de la liste et le reste en bas de la liste (vrais débutants comme moi d'ailleurs)
Bonne continuation mes chers amis et j'avoue que j'ai appris pas mal de choses grâce à vous !
Merci
J'espère que tu n'es pas jaloux cher Michel?? En fait, toi aussi tu es fort dans ce domaine, très fort même...
ça n'a rien à voir avec la fable du corbeau, car ce que je dis je le pense vraiment ...
En vérité, je crois que (si je ne me trompe pas) il y a environ une dizaine parmi les membres de ce forum qui font partie de la tête de liste,
environ 70% des membres au milieu de la liste et le reste en bas de la liste (vrais débutants comme moi d'ailleurs)
Bonne continuation mes chers amis et j'avoue que j'ai appris pas mal de choses grâce à vous !
Merci
Win7 (x64) 64 bits Pb 5.72
Re: Faire une UserLib uniquement en PB
Mais non, Michou.G est au dessus de tout cela.omega a écrit :@Zorro
J'espère que tu n'es pas jaloux cher Michel??
hahaha
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Faire une UserLib uniquement en PB
Comment intégrer une procédure avec paramètre optionnel ?
Si vous avez essayé de compiler le code suivant dans une userlib alors vous allez vite vous apercevoir que ça ne fonctionne pas.
Comment faire ?
■ Il faut créer autant de procédure qu'il y a de paramètres.
- Le nom de la première procédure sera visible dans le mini help de l'IDE En bas de la fenêtre.
- La ou les procédures suivantes reprendront le nom de la procédure principale suivie d'un numéro d'ordre qui commence par 2.
En reprenant l'exemple précédent, ça donnera :
■ Il va falloir aussi modifier le fichier de description en indiquant le ou les paramètres optionnels.
- Chaque paramètre optionnel (Type et nom de la variable) est inséré dans une balise [ ]
- La première ligne correspond à la déclaration de la procédure Nom + Type + Variable
- La seconde ligne c'est la valeur retournée par la procédure. Ici elle est de type String Unicode.
Le fichier SteMask.Desc complet
Si vous avez essayé de compiler le code suivant dans une userlib alors vous allez vite vous apercevoir que ça ne fonctionne pas.
Code : Tout sélectionner
ProcedureDLL.s StrMask(Value$, CurrencySymbol = "€")
ProcedureReturn Value$ + " " + CurrencySymbol$
EndProcedure
Comment faire ?
■ Il faut créer autant de procédure qu'il y a de paramètres.
- Le nom de la première procédure sera visible dans le mini help de l'IDE En bas de la fenêtre.
- La ou les procédures suivantes reprendront le nom de la procédure principale suivie d'un numéro d'ordre qui commence par 2.
En reprenant l'exemple précédent, ça donnera :
Code : Tout sélectionner
ProcedureDLL.s StrMask(Value$)
ProcedureReturn Value$ + " €"
EndProcedure
ProcedureDLL.s StrMask2(Value$, CurrencySymbol$ = "€")
ProcedureReturn Value$ + " " + CurrencySymbol$
EndProcedure
Code : Tout sélectionner
StrMask, String, [String], (Value$, [CurrencySymbol$]) - Your description
String | StdCall | Unicode
- La première ligne correspond à la déclaration de la procédure Nom + Type + Variable
- La seconde ligne c'est la valeur retournée par la procédure. Ici elle est de type String Unicode.
Le fichier SteMask.Desc complet
Code : Tout sélectionner
ASM
0
OBJ
2
; 2 Dependancies
String
Memory
; Your help file
HelpFileName
; Procedure summary
StrMask, String, [String], (Value$ [, CurrencySymbol$]) - Your IDE help description
String | StdCall | Unicode
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Faire une UserLib uniquement en PB
Cas de plusieurs paramètres optionnels
Nous allons maintenant intégrer un troisiéme paramétre dans notre procédure exemple.Cette procédure permet de signer un montant. Exemple -1000 €
Avec les explications précédentes vous avez compris que pour l'intégrer dans une UserLib, il va falloir coder trois procédures comme suit :Puis modifier le fichier de de description en insérant les variables optionnelles dans une balise [ ] de cette maniére
Nous allons maintenant intégrer un troisiéme paramétre dans notre procédure exemple.
Code : Tout sélectionner
ProcedureDLL.s StrMask(Value$, CurrencySymbol = "€", Negative.i = #True)
ProcedureReturn Value$ + " " + CurrencySymbol$
EndProcedure
Avec les explications précédentes vous avez compris que pour l'intégrer dans une UserLib, il va falloir coder trois procédures comme suit :
Code : Tout sélectionner
ProcedureDLL.s StrMask(Value$)
ProcedureReturn Value$ + " €"
EndProcedure
ProcedureDLL.s StrMask2(Value$, CurrencySymbol$ = "€")
ProcedureReturn Value$ + " " + CurrencySymbol$
EndProcedure
ProcedureDLL.s StrMask3(Value$, CurrencySymbol$ = "€", Negative.i = #True)
Protected Buffer.s
If Negative = #True
Buffer = "-" + Value$ + " " + CurrencySymbol$
EndIf
ProcedureReturn Buffer
EndProcedure
Code : Tout sélectionner
StrMask, String,[String],[Long], (Value$ [, CurrencySymbol$ [, Negative]]) - Your IDE help description
String | StdCall | Unicode
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Faire une UserLib uniquement en PB
Pour finir avec ces deux explications précédentes, je vous propose de tester la lib StrMask
Download http://falsam.com/Download/data/StrMaskLib (x86)
Installer cette lib dans le dossier d'installation de PureBasic dossier PureLibraries\UserLibraries
Relancer le compilateur (Menu compilateur -> Redémarrer le compilateur) et enfin le code de test.
Download http://falsam.com/Download/data/StrMaskLib (x86)
Installer cette lib dans le dossier d'installation de PureBasic dossier PureLibraries\UserLibraries
Relancer le compilateur (Menu compilateur -> Redémarrer le compilateur) et enfin le code de test.
Code : Tout sélectionner
Debug StrMask("1000")
Debug StrMask("1000", "F")
Debug StrMask("1000", "F", #True)
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%