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
» Gestion d'un système client-serveur.
Les DLLs Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Les DLLs Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Les DLLs Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Les DLLs Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Les DLLs Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Les DLLs Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Les DLLs Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Les DLLs Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Les DLLs Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Les DLLs Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Les DLLs Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Les DLLs Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Les DLLs Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Les DLLs Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Les DLLs Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 Les DLLs

Aller en bas 
4 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Les DLLs Empty
MessageSujet: Les DLLs   Les DLLs EmptyMer 20 Avr 2016 - 17:53

Réponse à Ouf_ça_Passe qui a posé une question sur un autre topic.


Une DLL est une bibliothèque, c’est-à-dire un ensemble de fonctions et de fonctionnalités regroupées dans un fichier unique.
Ce n’est pas un fichier texte. C’est un fichier exécutable (.exe) mais qui NE FONCTIONNE PAS TOUT SEUL.
C’est un fichier qui « aide » des .exe à bien fonctionner.

Disons dès le début que l’utilisation des DLLs dans un programme n’est pas recommandée pour les débutants dans la programmation, car elle utilise des techniques plus poussées.

Mais pourquoi  ces fichiers DLL ?
Il existe des milliers de langages de programmation : pourquoi tout ce beau monde ?
Parce qu’il n’existe pas un seul langage qui peut tout faire : chaque langage est plus ou moins spécialisé.
Comme dans la vie, le généraliste touche à tout mais il n’est pas spécialisé.
Le spécialiste connait parfaitement son domaine et ignore ou ne connait qu’un tout petit peu les autres domaines.
C’est pareil pour les langages de programmation : chaque langage est plus ou moins puissant dans certains domaines et laisse à désirer (voire nul) dans d’autres.

Alors pour remédier à ces faiblesses, on a recours à un autre langage pour profiter de l’une (ou plus) de ses puissances.
Avec cet autre langage (qui peut être très différent de votre langage préféré) on crée des fichiers DLL permettant de renforcer  ce dernier et d’augmenter ses possibilités de programmation. C’est aussi pour éviter de réinventer à chaque fois l’eau chaude, le fil à couper le beurre et la mauvaise blague de Papydall.

Ces fichiers DLL sont compilés dans le langage qui a servi à leur création et peuvent être utilisés par n’importe quel autre langage qui sait manipuler les DLLs.
Il est à noter que la célébrissime KGF.DLL de Klaus est développée à partir du langage DELPHI.
D’autres langages permettent le développement des DLLs, à titre d’exemple : Visual C++, Delphi, Visual Basic, free basic, etc.
Chaque langage possède ses propres directives pour obtenir un fichier DLL.

Une DLL contient donc du code écrit, en général, dans un langage autre que celui que vous utilisez.
En réalité une DLL n’est pas écrite pour être utilisée par un langage particulier, mais tout langage (sous réserve qu’il sache manipuler les DLLs) peut en profiter.
Une DLL contient des APIs : API signifie Application Programing Interface.
C’est en quelque sorte l’habillage de toutes les fonctions disponibles au sein des DLLs.
Une API peut être utilisée par un langage comme Panoramic sous forme de fonction.
Théoriquement, pour utiliser une DLL, il suffit de savoir laquelle effectue le traitement souhaité, quels arguments (paramètres) il faut lui envoyer, et quel type de valeur elle retourne.

Pour mettre  la théorie en pratique :

Nous allons créer une DLL et l’utiliser dans un programme Panoramic.
La fonction Atn2(x, y)  qui n’est pas définie dans Panoramic, calcule l’Arc Tangente de y/x en tenant compte des signes de Y et de X.
Elle est différente de la fonction atn(x) qui est présente en PANORAMIC.
Panoramic ne permet pas de créer des DLLs, nous allons utiliser Free Basic qui le permet.
En Free Basic, ça donne
Code:

' DLL atn2 en FreeBasic par Papydall
' calcul l'ArcTangente(y/x) en tenant compte des signes de X et de Y.
' Le résultat (en radians) appartient à l'un des 4 quadrants.
' compilez cette DLL ainsi :
' fbc atn2.bas -dll

extern "Windows-MS"

  function atn2(byref x as double, byref y as double,byref resultat as double) as integer export
' Atn2 - Arc tangente de Y/X
' arc tangente de Y/X -->  retourne les valeurs dans les 4 quadrants en radians
    dim pi as double
    dim result as double
    pi = 4*atn(1)
    If x = 0 then
    result = Sgn(y) * pi/2
    Else
    If x > 0 then
        result = Atn(y / x)
        Else
        if x < 0 and y = 0 then
          result = atn(y / x) - sgn(x) * pi
        else
        result = Atn(y / x) + Sgn(y) * pi
        end if
    End if
  end if
 resultat = result
 
 return resultat

end function


  end extern

La compilation de cette DLL se fait comme ceci :
fbc atn2.bas –dll

On obtient notre fichier : atn2.dll

Nous allons utiliser notre DLL en Panoramic :

Code:

dim x,y,resultat ,i%
x = int(rnd(100)-50) : y = int(rnd(100)-50)
dll_on "atn2.dll"
  x = int(rnd(100)-50) : y = int(rnd(100)-50)
  i% = dll_call3("atn2",adr(x),adr(y),adr(resultat))
  print "atn2(";x;",";y;") = ";resultat ;" radians = ";resultat*180/pi;" dégrés"
dll_off

Comme on voit, l’utilisation des DLLs permet de contourner certains manques et d’apporter plus de souplesse dans la programmation.
Mais on ne doit envisager de les utiliser que quand on aura acquis les bases solides de la programmation.

Vous trouvez sur mon Wedav  un dossiers Mes DLL contenant :
format.dll une DLL pour faire comme dans le bon vieux temps des autres Basic  PRINT USING
testFormat.bas
et un dossier trigo qui contient :
trigo.dll contenant 18 fonctions trigonométriques qui ne sont pas présentes dans Panoramic
testTrigodll.bas : un code Panoramic pour montrer comment on utilise trigo.dll
trigo.dpr code source en Delphi de trigo.dll
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




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

Les DLLs Empty
MessageSujet: Re   Les DLLs EmptyMer 20 Avr 2016 - 18:33

Ce serait bien dans le mag, non ?...
Laughing
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Les DLLs Empty
MessageSujet: Re: Les DLLs   Les DLLs EmptyJeu 21 Avr 2016 - 0:45

Sers-toi king
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1250
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

Les DLLs Empty
MessageSujet: Re: Les DLLs   Les DLLs EmptyJeu 21 Avr 2016 - 8:49

J'ai déjà fait un article sur ce sujet.

La seule référence que j'ai est la suivante. Cependant elle ne fonctionne pas :

http://panoramiclemag.magix.net/public/Articles/ART0031000700100003dll.pdf

Quelles sont les nouvelles adresses ? Pourrait-on avoir une liste de tous les articles avec leurs adresses sous forme de fichier TXT ? Pour l'instant tout ce que j'ai c'est un fichier intitulé "Liste_des_adresses_des_articles.txt"

Le lien du magazine sur le site de Panoramic n'est pas à jour non plus.
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Yannick




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

Les DLLs Empty
MessageSujet: re   Les DLLs EmptyJeu 21 Avr 2016 - 12:50

Suite à plusieurs infortune avec les divers hébergeur, je me suis rabattu sur Orange qui est mon fournisseur d' accès.

L' adresse du mag est :
http://panoramiclemag.pagesperso-orange.fr

L' article est dans la rubrique Articles.
Il peut être retrouvé en recherchant par :
- Auteur
- Rubrique
- N° de Mag

J' avais fait un reader  mais il est devenu obsolète.
Je vais réfléchir à en faire un avec mise à jour de la liste des articles par téléchargement de celle ci sur le site.
Mais là, il faudra être patient.
Revenir en haut Aller en bas
Ouf_ca_passe




Nombre de messages : 285
Age : 75
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Les DLLs Empty
MessageSujet: Re: Les DLLs   Les DLLs EmptyJeu 21 Avr 2016 - 18:06

Maître Papydall et

Maître Debord

Je considère qu'il n'y a pas d'offense pour personne à redire les choses.
Pour autant que ce soit dit ou vu d'une manière différente des fois précédentes.

Merci aux rédacteurs d'articles du mag que je télécharge et archive chez moi, même si je ne comprends pas tout.
Revenir en haut Aller en bas
Contenu sponsorisé





Les DLLs Empty
MessageSujet: Re: Les DLLs   Les DLLs Empty

Revenir en haut Aller en bas
 
Les DLLs
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: