Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
 
Delphi 12 Athens
 
#2

AW: Namensgebung in einer C++ dll

  Alt 9. Mai 2012, 19:36
Namen sind doch vollkommen egal ... es kommt nur auf die ordinalen Werte drauf an.
Du kannst die Namen also nach belieben umbenennen.

Selbst Folgendes würde problemlos funktionieren.
Delphi-Quellcode:
{$MINENUMSIZE 4}
type
  a = (b, c, d, e, f, g);

// oder
type
  TMyProcedureEnum = type Integer;

const
   mpSRG = TMyProcedureEnum(0);
   mpOR = TMyProcedureEnum(1);
   mpNONOR = TMyProcedureEnum(2);
   mpSrgConflict = TMyProcedureEnum(3);
   mpOrConflict = TMyProcedureEnum(4);
   mpNonOrConflictChopDate = TMyProcedureEnum(5);
Außerdem mußt du auf die Speichergröße achten und das ist der wichtigste Punkt.
Denn C arbeitet gerne mit Registerbreiten, unter Win32 währe dieser Enum-Typ 4 Byte groß,
während Delphi standardmäßig mit minimalem Speicher arbietet und diesen Enum in 1 Byte packen würde.
3 Byte blieben also undefiniert, was vorallem bei Übergabe an den C-Code (die DLL) probleme bereiten könnte, da die oberen 3 Byte undefiniert währen und Zufallswerte enthalten könnten.

{$Z4} oder {$MINENUMSIZE 4}
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 9. Mai 2012 um 19:47 Uhr)
  Mit Zitat antworten Zitat