Thema: Delphi Portierung von C++

Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Protierung von C++

  Alt 24. Mär 2010, 20: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)
  Mit Zitat antworten Zitat