Page 2 sur 3

Re: Faire une UserLib uniquement en PB

Publié : jeu. 14/sept./2017 13:36
par JohnJohnsonSHERMAN
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

Publié : jeu. 14/sept./2017 19:41
par G-Rom
JohnJohnsonSHERMAN 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 :)
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 .obj

Re: Faire une UserLib uniquement en PB

Publié : ven. 15/sept./2017 12:08
par omega
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

Publié : ven. 15/sept./2017 12:49
par Zorro
Image :lol:

Re: Faire une UserLib uniquement en PB

Publié : ven. 15/sept./2017 17:33
par G-Rom
Zorro a écrit :Image :lol:
Pourquoi le corbeau ? tu fait référence a quoi ?

omega 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 !
Génie ? je ne sais pas, merci quand même :)

Re: Faire une UserLib uniquement en PB

Publié : ven. 15/sept./2017 18:29
par Zorro
G-Rom a écrit :Pourquoi le corbeau ? tu fait référence a quoi ?
un corbeau qui a un Fromage dans le Bec .... :roll:
aucune culture !! 8O
omega a écrit :Vous êtes un génie G_Rom, merci encore !
omega te dit pour résumer :
"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 ... :lol:

Re: Faire une UserLib uniquement en PB

Publié : ven. 15/sept./2017 18:34
par Kwai chang caine
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 8O
Aussi parceque comme Bernadette il a parlé à dieu !!!! il a même codé un peu avec lui 8) ....noooon pas chirac !!! :?

Image

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 8)
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 :lol:

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 :lol: :lol:
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 :wink:) 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

Publié : ven. 15/sept./2017 18:42
par G-Rom
Zorro a écrit :
G-Rom a écrit :Pourquoi le corbeau ? tu fait référence a quoi ?
un corbeau qui a un Fromage dans le Bec .... :roll:
aucune culture !! 8O
J'avais compris pour la fable, mais pas fait le rapprochement avec le com d'Omega.
Kwai 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 8O
Aussi parce qu'il a parlé à dieu !!!! il a même codé un peu avec lu
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 loto :)

Re: Faire une UserLib uniquement en PB

Publié : ven. 15/sept./2017 18:43
par Zorro
@KCC je suis a court de Fable là :lol:

Re: Faire une UserLib uniquement en PB

Publié : ven. 15/sept./2017 19:08
par Kwai chang caine
:lol: :lol:
Juste pour le titre KCC avec PB c'est un peu "L'Âne et ses maîtres" :mrgreen:
Mais juste pour le titre, hein !!!

Parce que la fable...je l'ai lue trois fois...et toujours pas comprise :lol:
Ca me rappelle les Prototruc de FRED :mrgreen:

Bonne chance à ceux qui vont lire ça :
Lasource 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.
http://www.eternels-eclairs.fr/Poeme-Je ... es-Maitres

Re: Faire une UserLib uniquement en PB

Publié : ven. 15/sept./2017 21:18
par omega
@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

Re: Faire une UserLib uniquement en PB

Publié : ven. 15/sept./2017 21:39
par G-Rom
omega a écrit :@Zorro
J'espère que tu n'es pas jaloux cher Michel??
Mais non, Michou.G est au dessus de tout cela. ;)
hahaha

Re: Faire une UserLib uniquement en PB

Publié : jeu. 21/sept./2017 11:57
par falsam
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.

Code : Tout sélectionner

ProcedureDLL.s StrMask(Value$, CurrencySymbol = "€")
  ProcedureReturn Value$ + " " + CurrencySymbol$
EndProcedure

:idea: 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
Il va falloir aussi modifier le fichier de description en indiquant le ou les paramètres optionnels.

Code : Tout sélectionner

StrMask, String, [String], (Value$, [CurrencySymbol$]) - Your description 
String | StdCall | Unicode
- 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

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

Re: Faire une UserLib uniquement en PB

Publié : jeu. 21/sept./2017 12:57
par falsam
Cas de plusieurs paramètres optionnels

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
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 :

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
Puis modifier le fichier de de description en insérant les variables optionnelles dans une balise [ ] de cette maniére

Code : Tout sélectionner

StrMask, String,[String],[Long], (Value$ [, CurrencySymbol$ [, Negative]]) - Your IDE help description 
String | StdCall | Unicode

Re: Faire une UserLib uniquement en PB

Publié : jeu. 21/sept./2017 13:12
par falsam
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.

Code : Tout sélectionner

Debug StrMask("1000")
Debug StrMask("1000", "F")
Debug StrMask("1000", "F", #True)