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.
C'est quoi DLL Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
C'est quoi DLL Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
C'est quoi DLL Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
C'est quoi DLL Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
C'est quoi DLL Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
C'est quoi DLL Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
C'est quoi DLL Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
C'est quoi DLL Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
C'est quoi DLL Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
C'est quoi DLL Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
C'est quoi DLL Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
C'est quoi DLL Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
C'est quoi DLL Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
C'est quoi DLL Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
C'est quoi DLL 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 à ne pas rater :
ETB Pokémon Fable Nébuleuse : où acheter le coffret dresseur ...
Voir le deal

 

 C'est quoi DLL

Aller en bas 
3 participants
AuteurMessage
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
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 : 2386
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 : 7095
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 : 2386
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 : 69
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 : 7095
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 : 69
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 : 2386
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, un handle ?
» A quoi sert PARALLEL_ON/OFF
» Quoi de neuf à propos de Goric 3D ? (@Jack)
» C'est quoi la différence ?

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: