AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

UNION in C++ -> Delphi?

Ein Thema von Alter Mann · begonnen am 15. Feb 2010 · letzter Beitrag vom 15. Feb 2010
Antwort Antwort
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

UNION in C++ -> Delphi?

  Alt 15. Feb 2010, 17:03
Hallo

habe hier ein Deklarationsproblem. Wie bekommen diese C-Union nach Delphi?
Code:
typedef union {
  [case(VSS_OBJECT_SNAPSHOT)]
    VSS_SNAPSHOT_PROP Snap;
  [case(VSS_OBJECT_PROVIDER)]
    VSS_PROVIDER_PROP Prov;
} VSS_OBJECT_UNION;
Diese Umsetzung erzeugt nur Fehlermeldungen:
Delphi-Quellcode:
  VSS_OBJECT_UNION = packed record
    case Integer of
      3 : (Snap : VSS_OBJECT_SNAPSHOT); //VSS_OBJECT_SNAPSHOT
      4 : (Prov : VSS_PROVIDER_PROP); //VSS_OBJECT_PROVIDER
    end;
  end;
Warum?

Vielen Dank für Tipps unf Hinweise

Alter Mann
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#2

Re: UNION in C++ -> Delphi?

  Alt 15. Feb 2010, 17:07
Muss es nicht so heißen:
Delphi-Quellcode:
VSS_OBJECT_UNION = packed record
    case Integer of
      3 : (Snap : VSS_SNAPSHOT_PROP); // Hier
      4 : (Prov : VSS_PROVIDER_PROP);
  end;
// end;
[EDIT]Unter Berücksuchtigung von guinnes' Beitrag angepasst.[/EDIT]
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: UNION in C++ -> Delphi?

  Alt 15. Feb 2010, 17:08
Das 2. End ist zuviel ( Case in Records benötigen kein End )
Delphi-Quellcode:
  VSS_OBJECT_SNAPSHOT = Integer;
  VSS_PROVIDER_PROP = Pointer;
  VSS_OBJECT_UNION = packed record
    case Integer of
      3 : (Snap : VSS_OBJECT_SNAPSHOT); //VSS_OBJECT_SNAPSHOT
      4 : (Prov : VSS_PROVIDER_PROP); //VSS_OBJECT_PROVIDER
    end;
Glückauf
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: UNION in C++ -> Delphi?

  Alt 15. Feb 2010, 17:24
Hi,

schnelle Antwort, aber beide nicht die Lösung.

Die Meldungen lauten:
Zitat:
VSS_OBJECT_UNION = packed record
case Integer of
3 : (Snap : VSS_OBJECT_SNAPSHOT); E2029: '..' erwarted, aber ')' gefunden
4 : (Prov : VSS_PROVIDER_PROP); E2029: '..' erwarted, aber ')' gefunden
end;
Zwischen beiden moniert er die '4' und schreibt E2029:')'erwartet, aber Zahl gefunden.

Viele Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Jaynder
Jaynder

Registriert seit: 2. Dez 2004
Ort: Süderelbe
134 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: UNION in C++ -> Delphi?

  Alt 15. Feb 2010, 17:55
Dann muss dein Fehler vor dem zitieren Text liegen. Schreib mal direkt davor "type" und versuche es noch mal.

Delphi-Quellcode:
type
VSS_OBJECT_SNAPSHOT = Integer;
  VSS_PROVIDER_PROP = Pointer;
  VSS_OBJECT_UNION = packed record
    case Integer of
      3 : (Snap : VSS_OBJECT_SNAPSHOT); //VSS_OBJECT_SNAPSHOT
      4 : (Prov : VSS_PROVIDER_PROP); //VSS_OBJECT_PROVIDER
    end;
lässt sich jedenfalls problemlos übersetzen.
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#6

Re: UNION in C++ -> Delphi?

  Alt 15. Feb 2010, 18:19
Ich denke nach wie vor, dass es so heißen müsse:
Delphi-Quellcode:
const
  VSS_OBJECT_SNAPSHOT = 3;
  VSS_OBJECT_PROVIDER = 4;
type
  VSS_SNAPSHOT_PROP = XYZ;
  VSS_PROVIDER_PROP = UVW;
  VSS_OBJECT_UNION = packed record
    case Integer of
      VSS_OBJECT_SNAPSHOT:
        (Snap : VSS_SNAPSHOT_PROP); // <- VSS_SNAPSHOT_PROP
      VSS_OBJECT_PROVIDER:
        (Prov : VSS_PROVIDER_PROP);
    end;
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: UNION in C++ -> Delphi?

  Alt 15. Feb 2010, 18:30
Hallo,

also folgendes geht

Delphi-Quellcode:
type
  TRec = packed record
    case Integer of
      3: (i: Integer);
      4: (d: Double);
  end;
Delphi-Quellcode:
type
  TRec = record
    case Integer of
      0:
        (i: Integer; j: Integer);
      1: (d: Double);
  end;
Wie ist denn
VSS_SNAPSHOT_PROP und VSS_PROVIDER_PROP definiert ??



Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz