Bonjour à tous,

Voilà je développe sur VC++ 6.0 en MFC.
J'utilise l'API mysql++.

Mon programme à l'appui sur un bouton utilise une méthode qui crée une Socket Serveur qui se met à l'écoute d'un poste distant (appelé Superviseur). Lorsque le message est reçu la méthode envoie comme résultat une chaîne DataPacket qui est utilisé dans une autre méthode pour récupérer un "cycle" (un ensemble de valeurs) grâce à des requêtes SQL :

SocketServeur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
CString C_Serveur::ServerConnection(int iListenPort)
{
	//fonction serveur
	SocketObject	ServerSocketObject ;
	SocketObject	ClientSocketObject ;
	char			DataPacket[128] ;			// Paquet de données à recevoir
	int				iBytesReceived ;		    // # d'octets reçus
 
	// tentative de lancement du serveur
	if (ServerSocketObject.Bind(iListenPort))
	{
 
		AfxMessageBox("Tentative d'écoute sur le port");
 
	   	// Ecoute sur le port
		ServerSocketObject.Listen();
 
		// Acceptation de connexion
		ServerSocketObject.Accept(ClientSocketObject);
 
		// Reception de données
		iBytesReceived = ClientSocketObject.Recv(DataPacket, 128, 0);
 
//		char* nom_operateur ;
//		strcpy (nom_operateur, nom_BDD) ;
 
//		iBytesReceived = ClientSocketObject.Send(nom_operateur, 128, 0);
	}
   	else 
	{
		AfxMessageBox("<Serveur> : Connexion impossible") ;
	}
 
	CString reponse;
	ServerSocketObject.Disconnect();
	ClientSocketObject.Disconnect();
 
	reponse.Format("%s", DataPacket);
 
	return reponse ;
}
la fonction recup_cycle utilise seulement des :
- mysql_real_connect
- mysql_close
- mysql_query

Mon problème :
Les deux méthodes ne marchent pas entre elles :
Lorsque j'utilise la méthode recup_cycle (MySQL) seul, elle marche niquel
Lorsque j'utilise la Socket Server seul, elle marche niquel

Les deux foirent, pas à la compilation mais à l'exécution, lorsque j'ai crée ma Socket et que je fais appelle aux fonctions sql, il me dis que je n'ai pas de BDD :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
L'instruction à "0x10006db5" emploie l'adresse mémoire "0x00000014". La mémoire ne peut pas être "read".
Et quand je lance le Debugger il me met
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Unhandled exception in TabCtrl.exe (LIBMYSQL.DLL) : 0xC0000005: Access Violation.
Voilà si vous avez une idée 8)