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.
C'est quoi DLL Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
C'est quoi DLL Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
C'est quoi DLL Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
C'est quoi DLL Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
C'est quoi DLL Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
C'est quoi DLL Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
C'est quoi DLL Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
C'est quoi DLL Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
C'est quoi DLL Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
C'est quoi DLL Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
C'est quoi DLL Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
C'est quoi DLL Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
C'est quoi DLL Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
C'est quoi DLL Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
C'est quoi 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 : -20%
Drone Dji DJI Mini 4K (EU)
Voir le deal
239 €

 

 C'est quoi DLL

Aller en bas 
3 participants
AuteurMessage
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

C'est quoi DLL Empty
MessageSujet: C'est quoi DLL   C'est quoi DLL EmptyMer 21 Oct 2009 - 16:25

salut à tous,

Quelqu'un peut-il me donner un exemple d'utilisation des DLL.
J'ai repérer les commandes dans PANORAMIC, mais je ne comprend pas comment çà marche. Je soupçonne qu'il s'agit de faire appel à des fonctions de Windows, mais j'aimerai avoir un exemple pour me cultiver un peu.

A+
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

C'est quoi DLL Empty
MessageSujet: Re: C'est quoi DLL   C'est quoi DLL EmptyMer 21 Oct 2009 - 21:47

Une DLL (Dynamic Link Library) est un fichier qui renferme un certain nombre de fonctions. Chaque fonction a ses propres paramètres et retourne une ou des valeurs.
Les paramètres peuvent être passé par valeur ou par adresse. Dans le cas d'un passage par adresse, la fonction de la DLL peut modifier la valeur du paramètre.
Les fonctions peuvent être écrites dans pratiquement n'importe quel langage. Il y a plusieurs conventions pour le passage de paramètres à ces fonctions, qui interviennent dans l'ordre de passage des paramètres (ordre de la déclaration ou ordre inverse)

C'est vrai que l'API de Windows est un ensemble de DLL, mais une DLL peut avoir été générée pour une occasion précise.
Le but d'une DLL est d'apporter des fonctionnalités supplémentaires à un programme.

Voici un exemple d'utilisation:
Code:
dim a,b
a=4
b=6
dll_on "MyDLL.dll"
print dll_call1("Double",a)
print dll_call2("Multiply",a,b)
dll_off
end

La DLL MyDLL.dll contient 2 fonctions:
Double à qui on passe 1 paramètre et qui retourne le double.
Multiply à qui on passe 2 paramètres et qui retourne le produit de ces paramètres.

Il s'affiche:
8
24

Le code de Double ressemble à:
Resultat = parametre * 2

celui de Multiply ressemble à:
Resultat = parametre1 * parametre2

Voici MyDLL.dll:
Télécharger ce fichier
Revenir en haut Aller en bas
https://panoramic.1fr1.net
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

C'est quoi DLL Empty
MessageSujet: Re: C'est quoi DLL   C'est quoi DLL EmptyMer 21 Oct 2009 - 22:49

Merci pour ces explications claires qui profiteront à tout le monde.
Autrement dit, pour appeler une dll il faut connaître la liste de ses fonctions, et les paramètres demandés et rendus, ce qui n'est peut-être pas toujours facile à obtenir.

J'ai un utilitaire (je ne sais plus où je l'ai eu) qui s'appelle dllfunc.exe (Dll Function View v2.00) qui liste les différentes fonctions d'une dll donnée.
Mais ça ne donne pas pour autant le moyen de les utiliser.
C'est quoi DLL Dll

Edit: c'est là: http://rjpcomputing.wordpress.com/2007/05/01/dll-function-view-v200-released/
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

C'est quoi DLL Empty
MessageSujet: Re: C'est quoi DLL   C'est quoi DLL EmptyJeu 22 Oct 2009 - 10:50

Encore quelques mots sur les DLL (partie 2 du "tutoriel")

Une DLL peut utiliser en paramètre une variable, ou l'adresse d'une variable.
Pour passer l'adresse d'une variable à une DLL, il faut faire adr(variable).

Certaines DLL (de Windows en particulier) demandent le handle d'un objet pour pouvoir faire des actions sur cet objet.
Le handle d'un objet, c'est le numéro que Windows attribue à un objet. De même que PANORAMIC attribue des numéros à un objet, Windows le fait aussi, mais ce n'est pas le même numéro.
Pour passer à une DLL le handle d'un objet, on fait handle(n) , n étant le numéro PANORAMIC de l'objet. Exemple: handle(0) pour la fenêtre de base FORM0.

Certaines DLL demandent le handle de la partie graphique d'un objet (canvas dans le langage Windows), pour pouvoir dessiner sur cet objet.
C'est alors handle_canvas(n) , n étant le numéro de l'objet de PANORAMIC.

Comme vous avez été attentifs, voici un code qui reprend toutes ces notions et qui utilise une DLL que vous avez tous dans vos PC: cette DLL n'a pas besoin d'être installée, elle existe dans Windows.

Code:
dim w%,h%,a%

dll_on "cards.dll"
a%=dll_call2("cdtInit",adr(w%),adr(h%))
a%=dll_call6("cdtDraw",handle_canvas(0),105,48,2,0,0)
a%=dll_call0("cdtTerm")

dll_off
Qui donnera l'image de ce que cela donne?

JL35?

C'est de cette façon qu'est codé le solitaire de Windows.

Si on décortique cet exemple, on voit que les variables entières w% et h% ne servent à rien. Mais la fonction d'initialisation (cdtInit) exige qu'on lui passe l'adresse de 2 variables et il faut donc déclarer ces variables.
De même a% n'est là que pour mémoriser le retour des 3 fonctions appelées, parce que ces fonctions retournent une valeur, et qu'on ne traite absolument pas dans l'exemple.
Moralité: il faut respecter les conventions d'appel des fonctions d'une DLL, même si on n'utilise pas tous les paramètres.

Le tutoriel n°3 indiquera comment utiliser cette DLL.
Après ce 3ème tutoriel, vous serez en mesure de programmer des jeux de carte...
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

C'est quoi DLL Empty
MessageSujet: Re: C'est quoi DLL   C'est quoi DLL EmptyJeu 22 Oct 2009 - 11:41

Bon j'ai compris ce qu'est une DLL

Par contre, bonjour la prise de tête pour pour les trouver et savoir à quoi elles servent.

j'ai téléchargé "dllexp" qui donne une liste mais difficille de connaitre la fonction d'une dll (surtout en anglais)
j'ai aussi chargé "depends" c'est quif quif.

existe t-il une liste francaise quelque part.

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

C'est quoi DLL Empty
MessageSujet: Re: C'est quoi DLL   C'est quoi DLL EmptyJeu 22 Oct 2009 - 16:37

Euh, Jack, si j'exécute ton bout de code j'ai l'erreur 136: Impossible to load DLL. Ligne 3 ... ? (je suis sous Vista).
Mais je suis preneur pour la suite du tutoriel.

Après une recherche rapide, je n'ai pas trouvé de cards.dll dans mon système (windows, windows\system, windows\system32).
Par contre j'ai trouvé C:\windows\system32\CardGames.dll, mais ça ne marche pas non plus (erreur de paramètres). Ca a dû changer pour Vista ?

PS. je voulais regarder les fonctions de CardGames.dll avec mon utilitaire dllfunc.exe, mais ça le fait planter !


Dernière édition par JL35 le Jeu 22 Oct 2009 - 16:52, édité 2 fois
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

C'est quoi DLL Empty
MessageSujet: Re: C'est quoi DLL   C'est quoi DLL EmptyJeu 22 Oct 2009 - 16:41

Moi je suis sous XP et le code de Jack fonctionne.
J'ai pas encore de quoi faire une belotte....
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

C'est quoi DLL Empty
MessageSujet: Re: C'est quoi DLL   C'est quoi DLL EmptyJeu 22 Oct 2009 - 22:03

Citation :
Qui donnera l'image de ce que cela donne?

Voici la réponse:

C'est quoi DLL As_de_pique
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Contenu sponsorisé





C'est quoi DLL Empty
MessageSujet: Re: C'est quoi DLL   C'est quoi DLL Empty

Revenir en haut Aller en bas
 
C'est quoi DLL
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Quoi qui se passe ?
» C'est quoi la différence ?
» Qui fait quoi ?
» C'est quoi, un handle ?
» A quoi sert PARALLEL_ON/OFF

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: