Pb. COMPILATION API C de MYSQL et Visual studio 8

zorro4472 Messages postés 2 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 6 août 2008 - 6 août 2008 à 16:33
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 6 août 2008 à 18:11
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

SebLinck Messages postés 212 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 23 juin 2011
6 août 2008 à 16:46
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.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
6 août 2008 à 17:20
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.
0
zorro4472 Messages postés 2 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 6 août 2008
6 août 2008 à 18:01
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
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
6 août 2008 à 18:11
A la place de #define

_WIN32 1

mets tout simplement:
#include <windows>

Aucun besoin de toucher aux fichiers .h de MySQL.
0
Rejoignez-nous