econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 22 sept. 2005 à 12:00
Une fois que la référence est chargée, quand tu tapes "Dim toto As"
dans l'éditeur de code, une liste apparaît et les classes inclues dans
la DLL sont sélectionnables (parmi toutes les autres).
Manu -------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 22 sept. 2005 à 12:32
salut,
sauf erreur de ma part, la méthode de CRenaud et Econs sont pour des Dll ActiveX, et non C.
tu dois enregistrer la dll (regsvr) et déclarer chaques fonctions selon tes besoins, comme USER32, ou autre.
declare MAFONCTION ..... LIB ..... (Args)...
PCPT
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 22 sept. 2005 à 13:13
pcpt < Je ne sais pas ce qu'en penses econs, mais a mon avis, c'est le regsvr32 qui est à faire pour les dll activex !!
En fait, je ne sais plus car je m'enbrouille touours l'esprit avec ces dll C et activeX ...
Si Brunews passe apr içi, il va nous donner la solution tout de suite ...
Christophe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 22 sept. 2005 à 13:49
Des Dll qui contiennent des classes C++ ? Si ce n'est pas de l'ActiveX,
ca m'interesse au plus haut point, bien que je doute que les classes
soient utilisables sous VB : j'ai fais pas mal de recherche à ce sujet
sans rien trouver malheureusement ! :(
crenaud76, econs, seules les dll ActiveX nécessite un
enregistrement dans le registre (avec RegSvr32 par exemple), par
contre, les dll écrites en C pure qui contiennent des fonctions
exportables, ne doivent pas (peuvent pas ?) être enregistrées dans le
registre pour fonctionner, il s'agit de véritable dll. Pour utiliser
les fonctions exportées, il suffit de les déclarer avec un Declare
comme le dit pcpt.
Mais le problème que se pose kinouseba, c'est comment utiliser des
Classes C++ crées dans une dll non ActiveX sous VB je pense ! Et c'est
ce qui m'interesserai également !!! BruNews, est-ce que c'est possible ?
_____________________________________________________________________
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 23 sept. 2005 à 13:27
Nenni, si dll n'est pas ActiveX alors pas d'accès aux classes depuis VB dont les modes d'instanciation sont différents.
kinouseba > Pourquoi faire des classes dans une dll si on ne la fait pas COM ? Une dll devrait contenir des fonctions parfaitement testées et optimisées aux progs qui en ont besoin, retourner un statut d'erreur et ne pas déclencher d'exceptions. Voila grosso modo résumé ce qu'on attend d'une dll correcte et c'est le modèle de toute l'API, zlib et autres suivent ce principe. Il faut laisser les classes et autres facéties du C++ pour les progs utilisateurs des DLLs, celles ci n'ayant qu'à fournir fiabilité et vitesse.
Bal1n
Messages postés43Date d'inscriptionjeudi 6 mai 2004StatutMembreDernière intervention17 septembre 20081 23 sept. 2005 à 16:54
Bah moi j'ai toujours un truc que je comprends pas ...
Sur ce site ca fourmille de source sachant compresser en zip Via Zlib.dll.
Cette Dll est écrite en quel langage ? (en tout cas pas VB)
Par exemple si je fais ca :
Private Declare Function UnCompress Lib "zlib.dll" Alias "uncompress" (dest As Any, destLen As Any, src As Any, ByVal srcLen As Long) As Long
Qui Fait donc appel a zlib.dll et qui utilise ces fonctions.
Je pourrais désormais via un prog VB utilisé la fonction uncompress et ainsi décompresser mes fichier zip .
Donc on peut tres bien lire une dll ecrite dans un autre langage non ? D'ailleurs zlib.dll n'est-elle pas du C ou C++ ?
Mais ma vrai question c'est Comment savoir quel sont les paramètre a déclaré et le nom de la fonction à mettre dans 'private Declare'
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 23 sept. 2005 à 17:06
Oui, en effet, zLib n'est surement pas écrit en VB, et je dirais même plus qu'elle est écrite en C !
Il faut distinguer les dll C qui possède des fonctions exportées qui
sont appelable par des langages divers et variés (dont VB) des dll
ActiveX, souvent écrites sous VB, qui nécessite un enregistrement dans
le registre, sont beaucoup plus lourde, moins rapide, mais plus simple
à utiliser car orientées objet.
Pour connaitre les déclarations à mettre, tu peux trouver des info dans
les viewer d'API (voir le mien par exemple, ou l'API Viewer 2004 qui
possède pas moins de 5000 fonctions répertoriées !), ou consulter la
doc des librairies en question.
_____________________________________________________________________
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 23 sept. 2005 à 17:14
zlib est bien en pur C, pas un iota de C++ dedans.
"Declare Function UnCompress..." indique à VB de charger la DLL via LoadLibrary et de rechercher le nom de la fonction via GetProcAddress mais en aucun cas tu ne "LIRAS" la dll, 'simplement' vb posera sur la stack les params et fera ensuite un CALL sur le pointeur d'adresse obtenu.
Il faut bien sur la doc d'une dll pour savoir quels params passer sinon il est tout à fait impossible de les deviner, absolument rien dans le code bonaire ne permet de déterminer les params.