Pb Traduction C vers Delphi ; typedef Union ?

uruma Messages postés 25 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 1 décembre 2012 - 20 août 2003 à 14:58
anykey Messages postés 24 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 9 novembre 2005 - 28 mai 2005 à 20:58
Salut,
Je ne programme jamais en C, mais actuellement, j'essaye de traduire un sources C en DELPHI, malheuresement je tombe sur un os, je ne sais pas comment traduire çà :

typedef union {
struct {
WORD signature;
WORD numero;
} ordinaire;
struct {
WORD signature;
WORD numero;
WORD fonction[CICO_NOMBRE];
} cico;
} BDA_INIT;

Si quelqu'un à une idée !

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 août 2003 à 15:22
Si une struct te va mieux:

typedef struct _BDAINIT{
WORD signature;
WORD numero;
WORD fonction[CICO_NOMBRE];
} BDAINIT;

sera idem.
BruNews, ciao...
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
20 août 2003 à 15:27
C'est du Delphi ça BruNews ?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 août 2003 à 15:44
C'est lui qui fait la traduc mais il avait une arete en travers de la gorge, je lui propose donc une version de struct moins compliquee.
BruNews, ciao...
uruma Messages postés 25 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 1 décembre 2012
20 août 2003 à 16:08
Merci, c'est ce que j'avais décidé de faire, mais j'ai encore des tas d'autre soucis sur ce sources par exemple :

WORD (PASCAL FAR * fonction[MAX_FONCTION])(void FAR * FAR *);

void FAR * FAR * v; /* arguments

Qu'est ce que c'est ?
Moi, j'ai vu ça comme un pointeur de pointeur
J'ai aussi la fonction

_fmemcpy((LPSTR)execdesc,(LPSTR)rt_init,taille);

je consideré que c'était comme memcpy mais est ce bon ?

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 août 2003 à 16:22
ressemble effectivement a memcpy mais faut etre sur.
La 1ere partie doit definir un pointeur de fonction genre callback.
Elle sort de ou ta source, doit pas dater d'hier ou alors est faite avec un compilo exotique.
BruNews, ciao...
uruma Messages postés 25 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 1 décembre 2012
20 août 2003 à 16:41
C'est clair, plus j'essaye de la comprendre moins j'y arrive :-(
anykey Messages postés 24 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 9 novembre 2005
28 mai 2005 à 20:58
Euuuh je suis pas sur mais:

-Pour les unions tu utilise case de delphi:



typedef union {

struct {

WORD signature;

WORD numero;

} ordinaire;

struct {

WORD signature;

WORD numero;

WORD fonction[CICO_NOMBRE];

} cico;

} BDA_INIT;



deviens





BDA_INIT=record

case integer of

1:

(ordinaire:record

signature,numero:word;)

2:

(cico:record

signature,numero:word; fonction:array[0..CICO_NOMBRE-1] of word);

end;)

end;

end;



pour memcpy tu peut utiliser move(from,to,count) dans delphi ;)



WORD (PASCAL FAR * fonction[MAX_FONCTION])(void FAR * FAR *);

> la je ne vois pas



enfin c'est peu etre foireux ce que je viens de te dire, en fait je programme en C++ depuis... 6h (mais en delphi depuis 2 ans )
Rejoignez-nous