-
équivalence c++, vb
Bonjour,
pour mon programme, j'utilise une dll codée en c++. j'appelle les fonctions ainsi :
Code:
Declare Function Fonction Lib "C:\WINDOWS\system32\Blabla.dll" (ByVal index As Char, ByVal flag As Boolean) As ULong
(par exemple)
là où j'ai un souci, c'est quand les variables des fonctions de la dll sont des pointeurs genre long* ou bool*. je mets quoi quand je déclare la fonction ? je sais que pour char*, on met string mais c'est tout.
merci.
-
-
Bonsoir,
Vous pouvez faire ceci
Code:
Declare Function Fonction Lib "C:\WINDOWS\system32\Blabla.dll" (ByVal index As Char, ByVal flag As Boolean) As IntPtr
Lors de l'appel de la fonction, vous pouvez utiliser Marshal.ReadInt64(x) ou x est de type IntPtr
-
Bonsoir,
A moins que la dll soit codée pour du 64 bits le Ulong va se transformer en UInteger. Le lien que j'ai donné permet en fait de comprendre comment utiliser des dll écrites en C ou C ++ non managé vers du code managé... il y a beaucoup à lire et à comprendre, car il y a en plus de subtiles notions quand au byref et byval, et à la la classe marshall, les pointeurs vers des string terminées par null, des tableau de chaînes de longueur délimitées terminées par null ou non ...