FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Comment programmer une dll ? Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Comment programmer une dll ? Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Comment programmer une dll ? Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Comment programmer une dll ? Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Comment programmer une dll ? Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Comment programmer une dll ? Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Comment programmer une dll ? Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Comment programmer une dll ? Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Comment programmer une dll ? Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Comment programmer une dll ? Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Comment programmer une dll ? Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Comment programmer une dll ? Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Comment programmer une dll ? Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Comment programmer une dll ? Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Comment programmer une dll ? Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G ...
Voir le deal
599 €

 

 Comment programmer une dll ?

Aller en bas 
+2
Klaus
mimic
6 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
mimic

mimic


Nombre de messages : 103
Localisation : france
Date d'inscription : 02/09/2009

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une dll ?   Comment programmer une dll ? EmptySam 3 Jan 2015 - 12:34

Bonjour,

Comment procéder pour programmer une dll sous paranomic ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptySam 3 Jan 2015 - 12:43

On ne peut pas. Ce n'est pas prévu.

Pour faire une DLL, il faut utiliser d'autres langages qui offrent cette possibilité. Ils sont nombreux: Delphi, Visual Basic, FreeBasic, ... Il y en a des dizaines.

Maintenant, si tu veux faire une DLL à utiliser à partir de Panoramic, il faut respecter certaines règles très strictes et contraignantes. Il y a sur le forum et dans la "Mag", plusieurs articles et tutos à ce sujet.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 8:55

Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une DLL   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 10:57

Bonjour.

Je teste la création puis l'utilisation d'une DLL.

La DLL en FreeBasic est la suivante:

Code:
' extern "WindowsMS"

function IntFunc(n as integer) as integer export
' fonction à paramètre entier
return 2 * n
end function

function RealFunc(byref x as double) as integer export
' fonction à paramètre réel (double précision)
return int(x)
end function

function StrFunc(byref p as zstring ptr) as integer export
' fonction à paramètre chaîne de caractère
return len(*p)
end function

' end extern

J'ai supprimé les appels à extern, car Panoramic ne les reconnaît pas.

Voici le code d'utilisation de la DLL:

Code:
dim i%, a, s$, result%
i% = 10
a = 3.14159
s$ = "Bonjour"

dll_on "ma_dll.dll"

result% = dll_call1("IntFunc", i%) : print result%
result% = dll_call1("RealFunc", adr(a)) : print result%
result% = dll_call1("StrFunc", adr(s$)) : print result%

dll_off

Ce code est extrait de l'article de Jean Debord.

A l'exécution, j'obtiens le message d'erreur suivant: Not Correct Arithmetic Expression ligne 6.
L'appel à la DLL provoque une erreur.

Merci de votre aide pour la résolution du problème.
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une DLL   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 11:04

Bonjour.

Je viens de trouver la source de l'erreur.

Il faut écrire, dans la DLL: extern "Windows-MS" et non extern "WindowsMS".

Tout fonctionne parfaitement maintenant.

Je peux maintenant écrire des DLL en FreeBasic.

SUPER !
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 11:22

Juste une petite info, Pedro:
sois prudent avec le passage de chaînes de caractères en paramètre. En Panoramic, tu utilises adr(s$), ce qui est correct. Dans la DLL, tu utilises cette chaîne en lecture - bien. Mais attention en modifiant cette chaîne via le paramètre passé par référence ! La nouvelle valeur copiée dans ce paramètre doit avoir au maximum la longueur de la chaîne initiale. Un dépassement va très certainement provoquer une violation de mémoire, et une chaîne trop courte, si elle se termine par un octet 0 (zéro), va perturber la gestion des chaînes de Panoramic.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une DLL   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 11:25

OK. Merci de l'info Klaus.

Maintenant, j'aimerais traiter des nombres à virgule flottante par la DLL.

C'est-à-dire utiliser une fonction sur un nombre double, et retourner un résultat double.

Comment puis-je faire ?

Merci de ton aide.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 11:54

Tu ne peux pas le faire simplement. Solution: envoyer une chaine formatée avec un certains nombre de caractères et le séparateur. Autre solution: Envoyer 2 entier: Un avec les chiffres et un représentant la position de la virgule dans la suite de chiffres de cet entier...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 12:17

Je pense que tu peux le faire.

Il faut passer le flottant par référence, en utilisant adr(f) dans le programme Panoramic.
Dans la DLL, tu récupères la valeur en déréférençant le pointeur passé.
Tu fais ton traitement dans la DLL.
Puis, tu retournes le résultat via le pointeur, par référence.
Le résultat de type integer de ta fonction sera ce que tu voudras - toujours 0, un code erreur, ...

J'ai essayé - ça marche.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une DLL   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 13:26

Bonjour.

@Klaus.

Je n'ai pas tout compris.

Pourrais-tu poster un exemple d'utilisation ici ?

Merci.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 14:00

En Panoramic, tu écris:
Code:

dim res%, f1, f2, f3
f1 = 17.23
f2 = 58.89
res% = dll_call3("AddFloat",adr(f1),adr(f2),adr(f3))
message str$(f3)

En dans la DLL, tu codes ainsi:
Code:
function AddFloat(byref x as double,byref y as double,byref z as double) as integer export
' fonction à paramètre réel (double précision)
f3 = f1 + f2
return int(0)
end function

Tu vois le principe ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 14:05

A oui, c'est pas bête ça ... désolé, je n'y avais pas pensé.
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une DLL   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 14:28

Bonjour.

Voici un code qui marche, pour les double:

Code:
extern "Windows-MS"

' dim shared f1 as double
' dim shared f2 as double
' dim shared f3 as double

function IntFunc(n as integer) as integer export
' fonction à paramètre entier
return 2 * n
end function

function RealFunc(byref x as double) as integer export
' fonction à paramètre réel (double précision)
return int(x)
end function

function StrFunc(byref p as zstring ptr) as double export
' fonction à paramètre chaîne de caractère
return int(*p)
end function

function Racine(byval x as double) as double export
' fonction à paramètre réel (double précision)
return Sqr(x)
end function

function AddFloat(byref x as double,byref y as double,byref z as double) as double export
        ' fonction à paramètre réel (double précision)
        z=sqr(x)*y
        return z
end function

end extern

et le code Panoramic:

Code:
dim res%, f1, f2, f3

dll_on "ma_dll.dll"
f1 = 2.0
f2 = 2.0
res% = dll_call3("AddFloat",adr(f1),adr(f2),adr(f3))
message str$(f3)
dll_off
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une DLL   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 15:55

Bonjour.

Voici un petit code utilisant une dll FreeBasic qui fonctionne avec les chaînes de caractères.

Il fournit la position d'une sous-chaîne dans une chaîne, mais en commençant la recherche à partir de la fin de la chaîne.

Code:
dim a$, b$, res%, f1, f2, f3

dll_on "ma_dll.dll"
f1 = 2.0
f2 = 2.0
res% = dll_call3("AddFloat",adr(f1),adr(f2),adr(f3))
' message str$(f3)

a$="bonjour"
b$="b"
res%=dll_call2("LastInstr",adr(a$),adr(b$))
message str$(res%)

dll_off

Code de la dll.

Code:
extern "Windows-MS"

' dim shared f1 as double
' dim shared f2 as double
' dim shared f3 as double
dim shared b as string
dim shared k as integer

function IntFunc(n as integer) as integer export
' fonction à paramètre entier
return 2 * n
end function

function RealFunc(byref x as double) as integer export
' fonction à paramètre réel (double précision)
return int(x)
end function

function StrFunc(byref p as zstring ptr) as double export
' fonction à paramètre chaîne de caractère
return int(*p)
end function

function Racine(byval x as double) as double export
' fonction à paramètre réel (double précision)
return Sqr(x)
end function

function AddFloat(byref x as double,byref y as double,byref z as double) as double export
         ' fonction à paramètre réel (double précision)
         z=sqr(x)*y
         return z
end function

function LastInstr(byref p as zstring ptr, byref q as zstring ptr) as integer export
         b=""
         for k=len(*p) to 1 step -1
             b=b+mid(*p,k,1)
         next k    
         return InStr(b, *q)
end function

end extern
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 16:07

Interessant tout ça.
On pourrait mettre un article dans le mag avec comment créeer la dll en vb, delphi, free basic ou peut être en c aussi ?
Après, ce sera un collection de DLL par thème qu'il faudra avoir.
Le truc c'est de pouvoir travailler avec plusieurs DLL de manière inuitive, on peut le faire par l'appel d'une fonction dans certains cas qui ouvre la DLL, appelle la founction et referme la DLL.
Tout dépend de l'usage et des temps de réponses attendu.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 17:53

@Pedro:
concernant:
Code:
function AddFloat(byref x as double,byref y as double,byref z as double) as double export
        ' fonction à paramètre réel (double précision)
        z=sqr(x)*y
        return z
end function

As-tu vérifié la valeur retournée comme résultat ? Le résultat doit obligatoirement être un integer, pas un flottant. Donc, ta fonction devrait plutôt être ainsi:
Code:
function AddFloat(byref x as double,byref y as double,byref z as double) as integer export
        ' fonction à paramètre réel (double précision)
        z=sqr(x)*y
        return 0
end function
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une DLL   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 20:21

Bonsoir.

@Klaus.

Eh bien non, la fonction de la DLL marche très bien, en retournant un flottant, à ma grande surprise.

Code Panoramic.

Code:
dim a$, b$, c$, epc$, res%, f1, f2, f3

dll_on "ma_dll.dll"
f1 = 2.0
f2 = 2.0
res% = dll_call3("AddFloat",adr(f1),adr(f2),adr(f3))
message str$(f3)

a$="bonjour"
b$="b"
res%=dll_call2("LastInstr",adr(a$),adr(b$))
' message str$(res%)

a$=  "bonjour ()"
epc$="          "
res% = dll_call2("enlever_parentheses_et_crochets",adr(a$),adr(epc$))
' message epc$

dll_off

Code de la DLL.

Code:
extern "Windows-MS"

' dim shared f1 as double
' dim shared f2 as double
' dim shared f3 as double
dim shared b as string
dim shared epc as string
dim shared temporaire as string
dim shared k as integer
dim shared y as integer
dim shared true as integer

function AddFloat(byref x as double,byref y as double,byref z as double) as double export
        ' fonction à paramètre réel (double précision)
        z=sqr(x)*y
        return z
end function

end extern
Revenir en haut Aller en bas
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une DLL   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 20:47

Bonsoir.

Et maintenant, cela fonctionne également avec les chaînes de caractères.

Code Panoramic.

Code:
dim a$, b$, res%

dll_on "ma_dll.dll"

a$="bonne"
b$=string$(255," ")
res%=dll_call2("test",adr(a$),adr(b$))
message trim$(b$)

dll_off

Code de la DLL.

extern "Windows-MS"

' dim shared f1 as double
' dim shared f2 as double
' dim shared f3 as double
dim shared b as string
dim shared epc as string
dim shared temporaire as string
dim shared k as integer
dim shared y as integer
dim shared true as integer

function test(byref p as zstring ptr, byref b as zstring ptr) as string export
*b=*p+" année"
return *b
end function

end extern
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyLun 5 Jan 2015 - 23:03

Pas d'accord, Pedro. Désolé. Affiche la valeur de res% en sortie...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Comment programmer une dll ? Empty
MessageSujet: re   Comment programmer une dll ? EmptyMar 6 Jan 2015 - 0:38

Je ne suis pas un fabricant de dll, la seule que j' ai pondu...
...je ne me souviens même plus comment j' ai fait Embarassed .
C' était avec Freebasic mais je ne sais plus les manips pour compiler en .dll.


Si il y a un amateur de tuto pour cela, je le publierai avec plaisir sur le mag.


Mais devant votre volonté de passer des strings, $ pas les ficelles Laughing
à une dll et les récupérés dans Panoramic.
Je demande scratch si il n' est pas possible de jouer avec les codes ASCII des caractères ?...
Le traitement de caractères typo à nombre et de nombre à caractères typo risque par contre
de prendre du temps.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyMar 6 Jan 2015 - 0:55

@Ygeronimi:
En FreeBasic, ce sera plus simple que ça. On peut traiter ces chaînes normalement, comme toutes les chaînes, dans le code FreeBasic de la DLL. Et, comme pour les paramètres de type chaîne en entrée, il faut passer un paramètre de type chaîne pour la sortie, et tout cela "by ref" en FreeBasic, et avec adr() dans Panoramic.

Il faut bien sûr faire attention à ce que le résultat retourné ne dépasse pas la longueur de la chaîne existante déjà dans le paramètre de sortie - sinon, violation de mémoire.

Mais, et cela s'adresse surtout à Pédro: il faut bien avoir conscience que Panoramic exige que la fonction DLL retourne une valeur numérique de type entier. Pas un flottant, pas une chaîne de caractères. Il faut donc impérativement définir toutes ces fonctions "as integer export" et affecter impérativement une valeur de type integer dans la commande "return". C'est une des contraintes majeures à respecter en concevant des DLLs pour Panoramic.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

Comment programmer une dll ? Empty
MessageSujet: Comment programmer une DLL   Comment programmer une dll ? EmptyMar 6 Jan 2015 - 7:19

Bonjour.

@Klaus.

Désolé, mais chez moi, j'obtiens bien une chaîne correcte en sortie.
Je passe bien un entier res% pour exécuter la DLL, mais ensuite je réussis à récupérer la valeur de la chaîne traitée b$.

Code:
dim a$, b$, res%

dll_on "ma_dll.dll"

a$="bonne"
b$=string$(255," ")
res%=dll_call2("test",adr(a$),adr(b$))
message trim$(b$)

dll_off

J'utlise FreeBasic Ide version 0.4.6, avec la dernière version de Panoramic.

Code de la DLL.

Code:
extern "Windows-MS"

dim shared b as string

function test(byref p as zstring ptr, byref b as zstring ptr) as string export
        *b=*p+" année"
        return *b
end function

end extern
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyMar 6 Jan 2015 - 9:09

@Pedro Alvarez :

ça marche parce que tu affiches b$, mais essaye d'afficher res% : tu obtiens bien un nombre entier (probablement l'adresse de b$)

Il vaut mieux suivre le conseil de Klaus et utiliser res% pour retourner soit le résultat de la fonction s'il est entier, soit un code d'erreur.

PS. On n'a pas besoin du "dim shared b ..." dans la DLL. C'est une variable globale, distincte de la variable passée en paramètre.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
mimic

mimic


Nombre de messages : 103
Localisation : france
Date d'inscription : 02/09/2009

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyMar 6 Jan 2015 - 11:32

Je vois que j’ai bien fait d’ouvrir ce sujet…

Bon, je vais commencer par télécharger le tuto proposé par Fhoest (Merci).
Revenir en haut Aller en bas
mimic

mimic


Nombre de messages : 103
Localisation : france
Date d'inscription : 02/09/2009

Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? EmptyMar 6 Jan 2015 - 14:05

Le tutoriel est une vidéo ? Où une version papier téléchargeable ?
merci, de m’indiquer le lien, car je me perds un peu sur le forum de Fhoest.
Revenir en haut Aller en bas
Contenu sponsorisé





Comment programmer une dll ? Empty
MessageSujet: Re: Comment programmer une dll ?   Comment programmer une dll ? Empty

Revenir en haut Aller en bas
 
Comment programmer une dll ?
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» comment ont-ils pu programmer ceci?
» Comment terminer une saisie dans un objet par entrée
» Pour programmer en musique...
» Comment héberger une image ?
» Comment utiliser DLL_CALL0 ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: