Bon, je suis pas un gourou

, je bricole c'est tout
Pour faire ça en asm, procède comme ceci (je te donne en exemple une de mes commandes
La commande s'appelle
SetItemColor(#Gadget, Ligne.l, Colonne.l, CouleurTexte.l, CouleurFond.l, [Font]) avec 5 paramètres obligatoires et les sixième facultatif.
I faut 2 fichiers asm, un pour la commande à 5 param et un autre pour la commande à 6 param, la commande à 6 param pouvant très bien appeller la commande à 5 et réciproquement.
Le fichier pour la commande à 5 param se nomme comme la commande (c'est plus simple, SetItemColor.asm) et le deuxième fichier se nomme SetItemColor2.asm (c'est plus simple).
Maintenant dans le 1er fichier asm (SetItemColor.asm) il faut y écrire ceci
Public PB_SetItemColor
qui est le nom de la commande avec
PB_ devant (obligatoire) , Public pour un appel externe puis là ou commence le code tu mets le label qui porte ce nom
PB_SetItemColor:
Voici le fichier asm de ma commande qui ne fait que d'appeller la deuxième commande
Code : Tout sélectionner
format MS COFF
Public PB_SetItemColor
extrn PB_SetItemColor2 ; pour appeler la 2eme commande depuis celle-ci
section '.text' code readable executable
; SetItemColor(Gadget.l, Row.l, Col.l, TextColor.l, BackgroundColor.l)
; esp ---> adresse retour
; esp + 4 --> Gadget
; esp + 8 --> Row
; esp + 12 --> Col
; esp + 16 --> TextColor
; esp + 20 --> BkGroundColor
Gadget equ dword [esp + 24]
Row equ dword [esp + 24]
Col equ dword [esp + 24]
TextColor equ dword [esp + 24]
BkGroundColor equ dword [esp + 24]
PB_SetItemColor:
PUSH dword -1
PUSH BkGroundColor
PUSH TextColor
PUSH Col
PUSH Row
PUSH Gadget
CALL PB_SetItemColor2
RET 20
Maintenant le deuxième fichier asm SetItemColor2.asm
Même procédé
Tu déclare la commande Public en mettant un 2 à la fin
Public PB_SetItemColor2
et l'étiquette
PB_SetItemColor2: ou le code démarre
Si tu aurais un 3eme paramètre facultatif, tu cré un 3eme fichier asm avec ceci
Public PB_SetItemColor3
PB_SetItemColor3:
Voilà pour les fichier asm et les noms de commande.
Dans le fichier descripteur (.desc) écrit comme ceci (c'est toujours mon exemple) pour 5 ou 6 paramètres
SetItemColor, Long, Long, Long, Long, Long , [Long],
None | StdCall
Comme ce sont des long, je met 5 long sans crochet pour les param obligatoires et le 6eme entre crochets
Voilà, c'est tout.
Ca fera partie je pense d'une explication plus longue dans un tuto sur le façon de créer une librairie PB.