mallett
Messages postés12Date d'inscriptionlundi 1 septembre 2003StatutMembreDernière intervention16 juin 2008
-
13 juin 2008 à 14:04
mallett
Messages postés12Date d'inscriptionlundi 1 septembre 2003StatutMembreDernière intervention16 juin 2008
-
16 juin 2008 à 09:44
Bonjour a tous,
N'ayant encore jamais touché à la création de DLL, je souhaiterais pouvoir regrouper certaines fonctions dans une DLL afin de simplifier le dev. (Les fonctions sont appellées par diverses appli et si je touche a une fonction elle doit etre corriger pour toutes les appli)
Mon exemple (qui fonctione pas, bien sur !!!!!) :
1 - La fonction dans la DLL
Imports
System.Net.NetworkInformation
Public
Class DLL_Hardware
Public
Function GetMACs()
As
String
'------------------------------------------------------------------------------------
' Cette fonction recupere les MAC Adresse de l'ordinateur...
'------------------------------------------------------------------------------------
' Une fois recuperees, elle sont stockees dans un tableau sous le format suivant :
' - Type de la carte (Reseau, WIFI, etc....)
' - ID de la carte {XXXXXXXXXXXXXXXXXX}
' - MACAdresse 00-00-00-00-00-00-00-00
'------------------------------------------------------------------------------------
Dim NICs()
As NetworkInterface = NetworkInterface.GetAllNetworkInterfaces()
Dim MACs(0)
As
String
Dim NbMAC
As
Integer = -1
For
Each adapter
As NetworkInterface
In NICs
Dim MAC
As PhysicalAddress = adapter.GetPhysicalAddress()
Dim Name
As
String = adapter.Name
Dim IDMac
As
String = adapter.Id
Dim bytes
As
Byte() = MAC.GetAddressBytes()
If bytes.Length > 0
Then NbMAC += 1
ReDim
Preserve MACs(NbMAC)
MACs(NbMAC) = Name &
"|" & IDMac &
"|"
For i
As
Integer = 0
To bytes.Length - 1
MACs(NbMAC) += bytes(i).ToString(
"X2")
If i <> bytes.Length - 1
Then
MACs(NbMAC) +=
"-"
End
If
Next
End
If
Next
Return Join(MACs,
"§")
End
Function
End Class
2 - Appel de la DLL (qui est ajouter au projet !)
<DllImport(
"MyFirstDLL.dll", EntryPoint:=
"GetMACs")> _
Friend
Function GetMACs()
As
String
End
Function
3 - Utilisation de la fonction
Dim AllMACs As
String = GetMACs ()
et 4 (vous vous en doutez !!!!) le Problème....
Lorsque je fait çà, j'ai l'erreur suivante :
"Impossible de trouver le point d'entrée 'GetMACs' dans la DLL 'MyFirstDLL.dll'."
Et je trouve rien de clair pour m'expliquer comment faire ce style d'appel vers des fonctions que je
centralise dans une DLL...
Une ame charitable pour expliquer "la vie" à un jeune chouba debutant
dans le monde obscure des DLL ?
DblK
Messages postés51Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention 2 octobre 2008 14 juin 2008 à 10:54
Bonjour,
Alors bien évidemment comme tu l'as dis, il faut l'ajouter comme référence au projet.
Le point 2 n'est pas obligatoire à mon avis.
Le point 3 doit être remplacé par mon exemple.
Ensuite dans ton programme tu fais comme suit :
dim dblk as DLL_Hardware
messagebox.show(dblk.GetMacs)
Cela devrait marcher.
J'espère que cela pourra t'aider.