bonjour,
je suis obligé de me mettre a C#, et je passe mon temps a buter, en effet plein de choses on disparu dans C# par rapport a C.
Voila mon problème actuel:
le code en C
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DWORD GPSGetDeviceState(  GPS_DEVICE *pGPSDevice);
une fonction toute bête qui demande un pointeur sur une structure.
la structure étant définie par (toujours en C):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
typedef struct _GPS_DEVICE {
   DWORD    dwVersion;
   DWORD    dwSize;
   DWORD    dwServiceState;
   DWORD    dwDeviceState;
   FILETIME ftLastDataReceived;
   WCHAR    szGPSDriverPrefix[GPS_MAX_PREFIX_NAME];
   WCHAR    szGPSMultiplexPrefix[GPS_MAX_PREFIX_NAME];
   WCHAR    szGPSFriendlyName[GPS_MAX_FRIENDLY_NAME];
} *PGPS_DEVICE, GPS_DEVICE;
en C# j'ai écrit pour la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
int GPSGetDeviceState(IntPtr pGPSDevice);
En C# je bricole un truc comme cela sans rien comprendre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        struct FILETIME {
            Int32 dwLowDateTime;
            Int32 dwHighDateTime;
            }
 
        struct GPS_DEVICE {
            Int32    dwVersion;
            Int32    dwSize;
            Int32    dwServiceState;
            Int32    dwDeviceState;
            FILETIME ftLastDataReceived;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst=GPS_MAX_PREFIX_NAME)]
            public string szGPSDriverPrefix;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = GPS_MAX_PREFIX_NAME)]
            public string szGPSMultiplexPrefix;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = GPS_MAX_FRIENDLY_NAME)]
            public string szGPSFriendlyName;
        }
je ne sais pas si c'est bon, et ensuite je ne sais pas non plus comment passer un pointeur sur une structure pour pouvoir appeler la fonction GPSGetDeviceState!!
Je viens d'ingurgiter des pages et des pages de tutoriaux sur C#, mais je ne trouve pas, d'ailleurs je ne comprends pas bien la raison de C#, m'enfin ça c'est une autre histoire J'ai pas le choix alors je faits avec la mort dans l'ame

Merci de votre aide