From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

OS 64bits et compilo C 64bits (la finalité est du code LV)

Résolu !
Accéder à la solution

besoin d'un gros coup de main ici (temps consacré)

 

Je cherche celui (ou celle) qui programme en Labview ... mais aussi en C.

 

et surtout ... qui possède un evironnement full 64bits, soit ... un compilateur C qui compile en 64bits ET (bien entendu) un OS 64bits.

 

Compiler le petit code C ci-dessous, faire tourner ... et me dire le nombre qui apparait dans la fenêtre. (ce sera 32 ou 48)

 

int main ()

{

char zzz;
zzz = sizeof _iobuf; // structure définie dans stdio.h (msvcrt.dll)

printf ("%d",zzz);

getchar();

}

 

oui, j'exagère ...  Smiley frustré   ... mais le résultat de ce test m'aiderait beaucoup (et je n'ai pas de quoi le faire moi même)

 

ps : être bien certain que la totalité de la manip se fait en 64bits et sous OS 64bits.

 

10E+6 merci pour celui, ou celle, qui pourra me rendre ce coups demain.

 

 

0 Compliments
Message 1 sur 4
4 454 Visites

Je ne sais pas si c'est trop tard, mais voilà :

 

ouadji.png

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
Message 2 sur 4
4 387 Visites

si je pouvais te donner 5 kudos d'un coup ... je le ferais !!!

 

48 ... jnark ... je m'en doutais ! 

 

la structure _iobuf a un sizeof de 0x20 sous 32bits ... et 0x30 sous 64bits.

 

Helmut ...

 

pourrais-tu me télecharger le fichier "stdio.h" de ton compilo 64bits ?

 

je recherche la présence de cette structure (sous cette forme) :

 

struct _iobuf

typedef struct _iobuf { // 8 elements, 0x30 bytes (sizeof)
/*0x000*/ CHAR* _ptr;
/*0x008*/ INT32 _cnt;
/*0x00C*/ UINT8 _PADDING0_[0x4];
/*0x010*/ CHAR* _base;
/*0x018*/ INT32 _flag;
/*0x01C*/ INT32 _file;
/*0x020*/ INT32 _charbuf;
/*0x024*/ INT32 _bufsiz;
/*0x028*/ CHAR* _tmpfname;
} iobuf, *Piobuf;

 

génial ! tout tout grand merci à toi.

 

PS:

tu as utilisé le compilo de Visual Studio 2010 .... version express ? (à mon avis non, ce doit être la version full je pense)

J'ai également VS2010, mais en version express (gratuite)

et je pense que la version express de VS2010 ne propose pas le 64bits.

donc de mon côté je n'ai aucune trace de cette structure avec une longueur de 0x30.

De toute façon, même si j'avais la version full de VS2010, comme je n'ai pas d'OS 64bits

je pense que VS n'aurait pas installé le fichier "stdio.h" que je recherche.

 

 

0 Compliments
Message 3 sur 4
4 372 Visites
Solution
Accepté par l'auteur du sujet ouadji

Bonjour Ouadji,

 

Non c'est bien la version 2010 Express avec le SDK 7.1 pour compiler en 64 bits.

 

Je l'utilise pour compiler des modèles Simulink.

 

Voila ma version de _iobuf :

 

struct _iobuf {
char *_ptr;
int _cnt;
char *_base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char *_tmpfname;
};
typedef struct _iobuf FILE;

 

Cependant je pense que la différence se fait au niveau du linker et non du fichier header (c'est uniquement mon avis personnel qui n'engage que moi) ou j'utilise bien la version 64 bits de msvcrt.lib qui est différent pour du x86 ou x64.

 

Cordialement,

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
Message 4 sur 4
4 367 Visites