Vexplore
Messages postés25Date d'inscriptionlundi 22 décembre 2003StatutMembreDernière intervention 8 octobre 2010
-
16 juin 2007 à 14:16
Vexplore
Messages postés25Date d'inscriptionlundi 22 décembre 2003StatutMembreDernière intervention 8 octobre 2010
-
17 juin 2007 à 08:59
Bonjour à tous,
je souhaite utiliser en VB.Net un dll qui a été apparament dévelopé en C.
tout d'abord j'aurai voulu savoir si on pouvait utiliser un dll depuis n'importe quel langage de programmantion ??? Par exemple, est-ce qu'un dll peut être aussi bien appelé depuis un code C ou VB ou C++ ... ?
Ensuite, dans mon cas j'utilise la délcaration suivante :
Declare
Function OpenCleware
Lib "I:\Documents and Settings\Propriétaire\Bureau\Nouveau dossier\USBaccess.dll" ()
As
Long
Mais lorsque je lance mon programme, il me dit que le point d'entrée n'existe pas. Pourtant la fonction OpenCleware
existe bien dans la documentation de mon dll :( Vous savez pourquoi ???
Merci de partager le savoir. Il n'y a pas de vol, juste de l'échange.
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 juin 2007 à 19:38
Je viens de jeter un oeil sur le fichier h de la dll, à part la fonction d'init, quasi tout le reste prend des pointeurs d'interface en param. A part EbartSoft ou autre trapeziste de haut vol dans ce genre, je déconseille de jouer avec. Il te faudra passer par les OCX ou te mettre au C.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 16 juin 2007 à 14:56
J'imagine que la déclaration que tu donne a été trouvé dans une documentation qui ne fait pas référence explicitement à la plateforme .Net. Dans ce cas cette déclaration est probablement destinée à des langages Win32 et non .Net.
La différence entre Win32 et .Net est essentiellement (pour ce qui nous interresse ici) le changement des types de variables.
Ainsi un long en Win32 devient un Integer (ou Int32) en .Net
Essaye donc de corriger le type de la valeur de retour de la fonction en mettant un Integer à la place
Vexplore
Messages postés25Date d'inscriptionlundi 22 décembre 2003StatutMembreDernière intervention 8 octobre 2010 16 juin 2007 à 15:06
En fait j'avais déjà changer le type, puisqu'au départ il s'agissait d'un type int que j'ai donc mis en long.
Mais que je le mette en integer ou en long mon problème reste identique :(
Par contre si je change mon appel comme ça :
Declare
Function OpenCleware
Lib "I:\Documents and Settings\Propriétaire\Bureau\Nouveau dossier\USBaccess.dll"
Alias "_FCWOpenCleware@4" ()
As
Integer
Il ne met plus le problème de point d'entrée mais il écrit : " OpenCleware Exception runtime levée : System.NullReferenceException - La référence d'objet n'est pas définie à une instance d'un objet.
"
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 16 juin 2007 à 15:30
Après quelques recherches sur le net, il semblerait que ta <layer id= "google-toolbar-hilite-3" style="background-color: Cyan; color: black;">dll</layer> ne soit pas utilisable directement, tout au moins en VB. Il semblerait qu'il faille passer par les ocx livrés avec.
Ceci dit la seule documentation que j'ai trouvé est en allemand semble-t-il, et je ne comprend rien à l'allemand. Je suis donc peut-etre passé à coté d'une info importante