Einzelnen Beitrag anzeigen

oXmoX

Registriert seit: 8. Jun 2005
85 Beiträge
 
#1

Delphi-Equivalent zur C-union

  Alt 21. Jun 2005, 17:51
Hi,

hoffe mir kann jemand mit etwas C bzw. C++ Erfahrung mit meinem Problem helfen. Ich

verwende eine externe C++ Bibliothek in meinem Delphi-Code. Dazu "baue" ich einfach alle

für die Parameterübergabe benötigten Typen in Delphi nach. Das funktioniert natürlich auch

mit records (in C sind das dann structures). Mit der folgenden structure habe ich

allerdings so meine Probleme beim "nachbauen":

Code:
typedef struct CvMat
{
    int type;
    int step;

    /* for internal use only */
    int* refcount;

    union
    {
        uchar* ptr;
        short* s;
        int* i;
        float* fl;
        double* db;
    } data;

#ifdef __cplusplus
    union
    {
        int rows;
        int height;
    };

    union
    {
        int cols;
        int width;
    };
#else
    int rows;
    int cols;
#endif

} CvMat;
in Delphi würde ich schonmal so anfangen:

Code:
CvMat = record
  type_:   Integer;
  step:    Integer;
  refcount: PInteger;

  // ...und wie gehts weiter?

  rows:    Integer;
  cols:    Integer;
end;
Das Delphi-Equivalent für union ist angeblich ein variabler Record. Davon hab ich aber

keine Ahnung. Ebensowenig, wie von den Preprocessor-Anweisungen im C-Code ...muss ich die

etwa auch "nachbauen"?

Bin für jeden Hinweis dankbar!

Gruß,
oXmoX
  Mit Zitat antworten Zitat