Pb. COMPILATION API C de MYSQL et Visual studio 8

Signaler
Messages postés
2
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2008
-
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
-
Bonjour,
J'essai de compiler un source C avec Visual Studio 8 mais... Le compilateur n'aime pas mon code ....
J'ai mis include MYSQL/mysql.h et winsock.h est-ce correct ?

Voici le résultat de la compilation :
C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\crtdefs.h(1709) : error C2011: 'localeinfo_struct' : 'struct' type redefinition


C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\crtdefs.h(1709) : see declaration of 'localeinfo_struct'


C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\crtdefs.h(1715) : error C2011: 'tagLC_ID' : 'struct' type redefinition


C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\crtdefs.h(1715) : see declaration of 'tagLC_ID'


C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\crtdefs.h(1724) : error C2011: 'threadlocaleinfostruct' : 'struct' type redefinition


C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\crtdefs.h(1724) : see declaration of 'threadlocaleinfostruct'


C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\string.h(84) : error C2084: function 'size_t strnlen_s(const char *,size_t)' already has a body


C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\string.h(83) : see previous definition of 'strnlen_s'


C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\string.h(256) : error C2084: function 'size_t wcsnlen_s(const wchar_t *,size_t)' already has a body


C:/Program Files/Microsoft Visual Studio 8/VC/INCLUDE\string.h(255) : see previous definition of 'wcsnlen_s'



Comprend rien du tout ...

vince

4 réponses

Messages postés
212
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
23 juin 2011

Salut,

A mon  avis tu redéfinies des types ou tu inclue un fichier qui redéfini des types:
C:/Program Files/Microsoft Visual Studio
8/VC/INCLUDE\crtdefs.h(1709) : error C2011: 'localeinfo_struct' :
'struct' type redefinition
.

Tu essaye de compiler à lib mysql ?

Cordialement,
Sébastien.
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
Salut,
Pour utiliser MySQL en C avec Visual Studio je fais comme ceci:
1-Je m'assure que les dossiers include et lib figurent dans le dossier d'installation de MySQL. Pendant l'installation de ce dernier, on peut demander l'installation de ces dossiers. Ils sont également disponibles sur le site officiel.
2- Dans les options de Visual Studio, ajouter les chemins de ces dossiers include et lib afin que le compilateur puisse les utiliser.
3- Je commence mon code par ceci:
#include <windows.h>
#include <mysql.h>
#pragma comment (lib,"libmysql.lib")

Ainsi, tout marche à merveille.
Messages postés
2
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2008

En fait,

J'ai déclarer comme toi les entêtes include mais j'ai toujours une erreure ...
#define

_WIN32 1#include

<mysql.h>MYSQL

mysql_0;mysql_init(&mysql_0);

mysql_options(&

mysql_0,MYSQL_OPT_COMPRESS,0);mysql_options(&

mysql_0,MYSQL_READ_DEFAULT_GROUP,"odbc");if

(! mysql_real_connect(&mysql_0,"192.6.1.100","guest","guest","gestionCommercial",0,NULL,0) ){

fprintf(stderr,

"Impossible de se connecter à la base de données. Erreur : %s \n", mysql_error(&mysql));}

Dans le fichier mysql_com.h pour compiler j'ai du mettre en commentaire, sinon cela ne compile pas... je suis sous windows !!!

/*
  The following function is not meant for normal usage
  Currently it's used internally by manager.cstruct sockaddr;
int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen,
        unsigned int timeout);
*/

vince
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
A la place de #define

_WIN32 1

mets tout simplement:
#include <windows>

Aucun besoin de toucher aux fichiers .h de MySQL.