C++ vers VB

zgezou Messages postés 12 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 13 septembre 2005 - 1 juil. 2005 à 14:01
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 - 5 juil. 2005 à 09:23
Bonjour.
J'ai besoin de traduire ceci en VB mais je n'y arrive pas. Quelqu'un pourrait-il m'aider?



typedef struct{
cdMemType Type;
union{
cdChar* lpszFileName;
cdStream* pStream;
#ifdef macintosh
cdFSSpec* pFSSpec;
#endif
}u;
} cdStgMedium;


**************************************
typedef struct {
cdContext contextH;

//stream I/O function pointers
cdSOpen* open;
cdSClose* close;
cdSRead* read;
cdSWrite* write;
cdSSeek* seek;
cdSTell* tell;
} cdStream;


typedef cdVoid cdSTDCALL cdSOpen (cdUInt32 contextH, cdPermission, cdError *err);
typedef cdVoid cdSTDCALL cdSClose (cdUInt32 contextH, cdError *err);
typedef cdVoid cdSTDCALL cdSRead (cdUInt32 contextH, void*buf, cdUInt32 *bufsize, cdError*err); typedef cdVoid cdSTDCALL cdSWrite (cdUInt32 contextH, const void *buf, cdUInt32 *bufsize, psError psFAR *err);
typedef cdVoid cdSTDCALL cdSSeek (cdUInt32 contextH, cdWhence, psInt32 offset, cdError *err); typedef cdInt32 cdSTDCALL cdSTell (cdUInt32 contextH, cdError *err);
typedef char cdChar;
typedef void cdVoid;
typedef unsigned long cdUInt32;
typedef cdUInt32 cdError;



Merci beaucoup d'avance.

Zgezou

3 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
1 juil. 2005 à 17:31
salut,



type cdStgMedium

Type As Long

ptr As Long 'pointe vers ce que l'on veut

End type


**************************************
type cdStream
contextH As Long

//stream I/O function pointers
open as long
close as long
read as long
write as long
seek as long
tell as long

End type




Tous le reste ce sont des alias que l'on ne peut pas déclarer dans VB
(il suffit d'utiliser le type de base) et des pointeurs de fonction
c'est encore pire...là il faut le tutorial que je suis en train de
faire...mais c'est vraiment pas simple...tu pourras essayer en sachant
que la convention d'appel de tes fonctions (stream IO machin) est
stdcall (la plus simple)....

ShareVB
0
zgezou Messages postés 12 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 13 septembre 2005 1
5 juil. 2005 à 08:24
Merci, mais comment je traduis ca:
union{
cdChar* lpszFileName;
cdStream* pStream;
#ifdef macintosh
cdFSSpec* pFSSpec;
#endif
}u;

Je comprends pas : ptr As Long 'pointe vers ce que l'on veut

Zgezou
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
5 juil. 2005 à 09:23
salut,



une union, en vb ca n'existe pas mais ce n'est pas grave puisque les pointeurs ca n'existe pas non plus directement.



cette union est un simple pointeur vers : SOIT une chaine, SOIT un
stream, SOIT un FSSpec : c'est dire que c'est un pointeur (vers un seul
des trois types à la fois) donc 4 octets, donc un long...



il doit y avoir un flags dans la structure qui indique la nature de ce pointeur....

ShareVB
0
Rejoignez-nous