Announcement

Collapse
No announcement yet.

C-Befehl "UNION" -> Delphi

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C-Befehl "UNION" -> Delphi

    Hallo,<p>
    beim Übersetzen eines einfachen C-Code bin ich auf folgende Stelle gestossen:
    <pre>
    typedef struct _DEMO_DATA {
    union {
    LPBYTE ForwarderString;
    FARPROC32 Function;
    DWORD Ordinal;
    } u1;
    } DEMO_DATA,*PDEMO_DATA;
    </pre>
    Jo, man könnte jetzt zwar anstatt "union" ein neues Record erstellen und zuweisen, aber gibt es denn da keine einfacher Funktion?

  • #2
    Mit <b>case</b> kann man eine Union deklarieren und <b>record</b> funktioniert auch inline...

    <pre><p><b>type</b>
    _DEMO_DATA = <b>record</b>
    u1: <b>record</b>
    <b>case</b> Integer <b>of</b>
    0: { ForwarderString: LPBYTE; };
    1: { Function: FARPROC32; };
    2: { Ordinal: DWORD; };
    <i>// end; // case</i>
    <b>end</b>; <i>// u1</i>
    <b>end</b>;
    DEMO_DATA = _DEMO_DATA;
    PDEMO_DATA = ^_DEMO_DATA;<p></pre>

    Gruß Nic

    Comment


    • #3
      Hallo,<p>
      zuersteinmal DANKE. Auf die einfachsten Dinge kommt man selber gar nicht ;-)<p>
      Jo, nach x-Zeilen weiter im C-Quellcode bin ich nochmals auf eine Stelle gestossen, wo ich im Moment "hängen" bleibe. Evtl. weiss ja jemand weiter.
      <pre>
      DEMO_DATA da = { sizeOf(da) }
      FunktionXY(&da);
      ....
      </pre>
      Irgendwie hab ich das Gefühl, dass ich wieder total auf dem Schlauch stehe..

      Comment


      • #4
        Das ist einfach eine initialisierte record-Variable.<br>
        var<br>
        da: DEMO_DATA = (Ordinal: 0);<br>
        Ich bin mir ueber die syntax in Pascal nicht ganz sicher

        Comment

        Working...
        X