Re: Protierung von C++
24. Mär 2010, 21:48
Jain. Generell besteht immer ein klein wenig Unsicherheit beim Alignment. Bei DWORD-Folgen ist das meist kein Problem (da selten >32Bit aligned wird), beim Array könnte ein "packed" nötig sein. KÖNNTE!
Und dann ist da noch diese prima Schreibweise bei Structs: Der Typ heisst "_IMAGEHLP_SYMBOL", also das was gleich nach dem Schlüsselwort "struct" steht. Was hinter der "}" folgt, sind Variablendeklarationen dieses Typs. "IMAGEHLP_SYMBOL" und "*PIMAGEHLP_SYMBOL" sind also globale Variablen, ersterer vom Typ des Structs, zweiterer ein Pointer darauf - für den aber kein separater eigener Typ definiert wird, sondern "inline" per "*"-Operator realisiert ist.
Das heisst also, dass das Struct an sich korrekt übersetzt ist, jedoch "falsch" benannt, und die Variablendeklarationen müssten sprachbedingt an anderer Stelle noch erfolgen, hier fehlen sie.
Es gibt auch noch einen kleinen netten Unterschied: Instanzen von Structs landen auf dem Stack. Um sie referenziert auf dem Heap zu haben, muss man einen Pointer auf den Struct nehmen. Letzteres ist in Delphi die einzige Wahl, und bedarf keiner weiteren Pointer-Deklaration, die aber zwecks Ähnlichkeit zum Original auch nicht weh tun würde.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
|