Bonjour,
Voici un exemple de structure en C que j'aimerai coder en C#. En fait mon idée est de faire une application capable de parser les mini-dumps de microsoft. Je travaille sur PocketPC et je génère souvent des KDMPs (mini dump) donc j'aimerai pouvoir les classer par ordre de priorité suivant le process qui crashe, ou encore la fonction appelée qui pose problème etc.
Voici la structure qui m'intéresse (http://msdn.microsoft.com/en-us/library/ms939646.aspx):
Voila un début de conversion en C# mais ne connaissant pas le C, je suis très limité:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 typedef struct _MINIDUMP_HEADER { ULONG32 Signature; ULONG32 Version; ULONG32 NumberOfStreams; RVA StreamDirectoryRva; ULONG32 CheckSum; union { ULONG32 Reserved; ULONG32 TimeDateStamp; }; ULONG64 Flags; } MINIDUMP_HEADER, *PMINIDUMP_HEADER;
Je ne sais pas vraiment que vient faire le pointeur *PMINIDUMP_HEADER et je ne connais pas vraiment ce qu'est une union par rapport à une structure ... (apparemment ce serait que Reserved et TimeDateStamp seraient inscrit à la même adresse mémoire ?? Donc en fait une seule valeur serait accessible à la fois : Reserved ou TimeDateStamp ?) .
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 public struct MINIDUMP_HEADER { UInt32 Signature; UInt32 Version; UInt32 NumberOfStreams; int StreamDirectoryRva; // RVA = int (?) UInt32 CheckSum; [System.Runtime.InteropServices.StructLayout(LayoutKind.Explicit)] struct Union { [System.Runtime.InteropServices.FieldOffset(0)] UInt32 Reserved; [System.Runtime.InteropServices.FieldOffset(0)] UInt32 TimeDateStamp; } UInt64 Flags; }
Si quelqu'un peut me donner un coup de main (pas de pied... ça fait trop mal ), ça serait simpa.
Merci d'avance !
AlnCool
Partager