Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: C-Header nach Delphi umfummeln

  Alt 1. Okt 2004, 17:03
Code:
#define MCI_STATE_STOP  0x00000001L
Delphi-Quellcode:
const
  MCI_STATE_STOP = $00000001;
Das L sagt in C das es ein 32-Bit-Wert ist (long).
In Delphi ist die Konstante sowieso 32 Bit.
Einen Typ fuer die Konstante zu vergeben ist kontraproduktiv.


Code:
typedef struct tagMCI_CONTROL_DISPLAY_PARMS
{
   DWORD   dwCallback;
   DWORD   dwState;
} MCI_CONTROL_DISPLAY_PARMS, *PMCI_CONTROL_DISPLAY_PARMS, FAR *LPMCI_CONTROL_DISPLAY_PARMS;
Besonderst das "tagMCI_CONTROL_DISPLAY_PARMS" nach dem "typedef struct",
sowie dieses "FAR *LPMCI_CONTROL_DISPLAY_PARMS"-Dinges machen Probleme..

Fue tagMCI_CONTROL_DISPLAY_PARMS gibt es in Delphi ueberhaupt keine Entsprechung.
Es ist irrelevant. Bei C wuerde es erlauben einen Zeiger auf das Struct im Struct zu deklarieren.
Der Name des Struct-Typs steht ja erst am Ende (MCI_CONTROL_DISPLAY_PARMS) und ist fuer die Deklaration des Pointerelementes noch nicht vorhanden.

Delphi-Quellcode:
type
  PMCI_CONTROL_DISPLAY_PARMS = ^MCI_CONTROL_DISPLAY_PARMS;
  LPMCI_CONTROL_DISPLAY_PARMS = ^MCI_CONTROL_DISPLAY_PARMS;
Das FAR sagt nur das es ein 32-Bit Pointer ist und ist genau wie bei Delphi veraltet und irrelevant.
  Mit Zitat antworten Zitat