Bonjour,
j'utilise une dll c++ en c# et celle-ci appelle un callback définit comme suit :
remarque: hItem, values, et quality sont des tableaux de taille count.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 typedef VOID (CALLBACK* FONCTION_CALLBACK)( int NumServ, DWORD hGroup, DWORD count, DWORD *hItem, VARIANT *values, WORD *quality, FILETIME *time);
j'ai déclaré ce callback de la manière suivante en c# :
Seulement, lorsque la méthode est appelée, le tableau de valeurs values est de taille 1, alors que le nombre d'items (count) est bien supérieur. Par contre, les tableaux hItem et quality sont bien respectés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public unsafe delegate void FONCTION_CALLBACK( int NumServ, Int32 hGroup, Int32 count, Int32 *hItem, object[] values, UInt16 *quality, FILETIME *time);
Je supprose que c'est à cause de la déclaration avec [] du tableau values mais c'est le seul moyen que j'ai trouvé pour convertir les variant.
Une idée? merci à tous.
Partager