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
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):
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:
int GPSGetDeviceState(IntPtr pGPSDevice);
En C# je bricole un truc comme cela sans rien comprendre:
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
Partager