ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 21 nov. 2006 à 15:00
salut,
en fait, pour le HINSTANCE et HWND ca dépend avec quoi tu les récupères : Intptr.toInt32 = int...avec le api c'est plutot int et avec les méthodes du framework intptr...en fait c'est surtout une convention .Net...
j'ai un tuto sur le marshaling, mais en VB.net...mais en gros ca change juste la syntaxe : http://www.sharevb.net/Les-API-en-VB-Net.html...j'en ai une version pour c# mais elle est pas sur le net pour le moment...
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 21 nov. 2006 à 15:04
Pour les tableaux de short c'est bien sûr ByValArray, pour HWND et HINSTANCE c'est mieux d'utiliser des IntPtr que des int, les IntPtr font 32 ou 64 bits selon la platforme. Pour le tableau de pointeur float là j'ai un doute, et rien pour tester pour le moment. Ca doit être plus simple de le laisser en tableau de pointeur et de faire un prototype unsafe.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 21 nov. 2006 à 16:12
Ca faut voir avec la doc de ta fonction.. depuis C# tu récupères le handle ( HWND ) de la fenêtre avec la propriété Form.Handle et le Handle de l'application avec Marshal.GetHINSTANCE( typeof( MyClass ).Module ).
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 21 nov. 2006 à 16:36
salut,
pour le float* : euh, autant pour moi, en fait, c'est avec float)Marshal.PtrToStructure(ptr,typeof(float));....ou alors avec les contextes unsafe (des pointeurs)...
et pour hinstance et hwnd = intptr...ca sera surement plus simple...