Fichiers dll [Résolu]

Signaler
Messages postés
345
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
salut tous le monde j'ai des fichiers dll fournie avec une appareil est ce que je peux utliser les fonctions fournie avec ces fichiers car il ya un guide qui mentionne que tous les fonctions existe dans les fichiers (Les fonctions sont détaillées avec les type de paramètres).
Si oui comment faire?
merci

15 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
"donc je commence d'appeler la librairie DLL
"

Mais ce n'est pas vrai !

Tu commences alors par relire ce que j'ai écrit juste avant !!!
Puis tu fais ce que je t'ai dit ( ouvrir ton aide en ligne - MSDN - sur le mot DECLARE).

Je vais au dodo, là...
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Et donc à partir de la doc sur chacune des fonctions, il va te falloir écrire, pour les fonctions qui te seront utile, leur déclaration dans le code du style :

Declare Function NomDeLaFonction Lib "NomDeLaDll" (NomParam1 As TypeDuParam1, .....) As TypeDeLaValeurDeRetour

Ensuite tu utilisera tes fonctions comme de simples fonctions.

Pas besoin d'appel de la librairie, elle sera automatiquement appelée lorsque tu utilisera les fonctions ainsi déclarées

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
Salut,

En lisant avec attention la documentation (précisément) qui accompagne ton matériel et qui doit en principe exposer les fonctions que contiennent ces librairies , leurs paramètres d'entrée, les valeurs retournées et la facpn de les utiliser.
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
Au faut, mimosa : ce matériel, c'est quoi ? toujours la même pointeuse ?
Messages postés
345
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010

oui c'est la fameuse pointeuse ...lol bon est ce que a partir de vb je pe lancer ces fonctions car dans la documentation il ya uniquement les commentaires sur les fonctions,leurs paramètres et le type de retour
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
Bien entendu que tu peux les utiliser, en :
- les déclarant
- les appelant en leur passant les paramètres qu'elles attendent en entrée
- récupérant et exploitant la valeur retournée
Le tout nécessite toutefois (et celà ne se "devine" pas) que tu te sois documentée sur les paramètres attendus et les valeurs retournées (tout celà est forcémùent exposé dans la documentation accompagnant ton matériel)
Messages postés
345
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010

daccord mais comment? est ce que c'est faisable d'appeler des fichiers dll et comment vb va connaitre des fonctions extérieurs ?
Svp si vous avez une idée sur l'utilisation des dll dites ,vraiment je suis bloqué
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
mimosa :
on n'appelle pas des fichiers .dll !! (ce sont des librairies contenant des fonctions)
on déclare les fonctions (contenues dans ces librairies) que l'on souhaite utiliser
on appelle ensuite les fonctions que l'on utilise (pas la librairie qui les contient !) en leur passant (une fois de plus) les paramètres qu'elles attendent. Cet appel retourne une valeur, et c'est cette valeur qui doit être utilisée ...
Commence par ouvrir ton aide en ligne sur le mot Declare (instruction  = Statement en anglais) , donc... C'est là une étape indispensable et totalement incontournable.
Messages postés
345
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010

donc je commence d'appeler la librairie DLL puis j'appelle les fonctions en donnant des paramètres c'est ca (pour l'appelle d'un fichier j'utlise la notion du fichier sous vb) mais pour l'appelle d'une fonction je ne sai pa comment
Messages postés
345
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010

voila c'est ce que je cherche donc après lib je dois mettre le chemin du fichier DLL
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
Bonsoir Casy,

Voilà un extrait d'un .chm que j'ai écrit il y a longtemps...
J'espère que ce ne sera pas du chinois pour Mimosa :

L'appel de l'API est fondamentalement semblable à l'appel d'une fonction ordinaire, aves ses paramètres.

Nous appelons en réalité une fonction d'une librairie (DLL).

Il nous faut déclarer la fonction dont il s'agit et, pour ce faire, préciser les éléments suivants :

- Le nom de la fonction ou de la procédure contenue dans la Dll et que nous voulons utiliser.

- le nom de la librairie (DLL) dans laquelle se trouve cette fonction ou procédure

- les paramètres qui doivent être passés à la fonction ou procédure

- le type de la valeur qui sera renvoyée par la fonction ou procédure.

Examinons par exemple la déclaration de la fonction FindNextFile de la bibliothèque Kernel32.dll :
Cette fonction attend un paramètre hFindFile, de type long, un paramètre lpFindFileData correspondant à une structure WIN32_FIND_DATA et retourne un Long....
La syntaxe de sa déclaration est donc la suivante :

Declare Function FindNextFile Lib "Kernel322" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

ou encore, en utilisant un Alias (voir plus bas) :

Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

Encore faudra-t-il définir la structure, ainsi, par exemple en ce qui concerne WIN32_FIND_DATA :

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

et, du coup : faire au besoin des déclarations de constantes (ici par exemple la constante MAX_PATH) pour les membres de cette structure, voire, comme c'est le cas pour celle-ci, définir d'autres structures correspondant elles-mêmes à un élément de la structure principale (ici, par exemple : une structure FILETIME)

Il est évident que tous ces renseignements sont donc nécessaires. Ils peuvent être obtenus ici et là (sur le Net, dans des ouvrages spécialisés, etc....) et... ici-même, je l'espère, pour un grand nombre des fonctions et procédures les plus utilisées...)

UTILISATION D'ALIASIl est possible d'appeler une fonction en utilisant un pseudo (plutot que son nom réel).Ce pseudo doit alors être déclaré conjointement au nom réel de la façon suivante :Imaginons vouloir déclarer et appeler sous le nom Titi une fonction Toto de la librairie Machin.dllDéclare functionTitilib "Machin"Alias "Toto"(byval.....) as ....L'utilisation d'un alias peut avoir plusieurs raisons, parmi lesquelles les suivantes :- raisons de lisibilité : un mot plus "parlant" peut souvent faciliter la maintenance d'une application.
- éviter une ambiguïté : certaines fonctions comportent des
caractères qui pourraient être interprêtés différemment par VB (cas
par exemple du caractère "_" qui, sous VB, a une signification particulière !)Imaginons par exemple que nous ayons à déclarer
(et utiliser) la fonction _lOpen de la librairie Kernel32Si nous la déclarions ainsi :Declare Function _lopen Lib "kernel32" (ByVal _lpPathname As String, ByVal ireadWrite As Long) As LongVB lirait bien évidemment :Declare Function lopen Lib "kernel32" (ByVal _lpPathname As String, ByVal ireadWrite As Long) As Longce qui provoquerait une erreur !
Messages postés
345
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010

merci j'ai une dernière question et j'espère que je t'ai pa dérangé.


Est ce que les fonctions fournie dans la Dll sans acceptable quelque soit le language de programmation car dans la documentation que j'ai ,j'ai vu des fonctions avec des pointeurs donc est ce que je peu faire en vb byRef pour remedier e ce problème


 
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
25
Toutes fonctions contenues dans une librairie (dll) compatible Windows peuvent êtres appelées par tout langage de développement
 compatible Windows (ce qui est le cas de VB).
Messages postés
345
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010

Grand merci monsieur vous m'avez donné espoir ,donc je vé commencé mon travail dés demain.
Alors bonne nuit
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Pour l'histoire des pointeurs, essaye de regarder ce document --> http://rp.developpez.com/vb/tutoriels/dll/

Attention si tu doit passer des tableaux ou des chaines de caractères à une dll, ils (elles) doivent etre déjà dimentionner avant le passage à la dll. Celle-ci ne fera que les remplir

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php