Fuite de mémoire

cs_mamag Messages postés 48 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 octobre 2005 - 18 août 2005 à 14:25
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 18 août 2005 à 15:54
Bonjour,
j'ai réalisé une DLL en C++, en utilisant la librairie ADO, la DLL semble fonctionner mais apparemment, j'ai une fuite mémoire et je ne vois pas du tout d'où cela peut provenir.

Si quelqu'un pouvait m'éclairer...
merci beaucoup pour votre aide.

Voici une des fonctions de la DLL qui semble avoir des fuites de mémoire:

Code:,
----

extern "C"__declspec(dllexport) void Deconnection(CString chemin, CString* etat)
{

//déclarations des variables
ADOConnect Conn;
ADOError erreur;
CString insertion;

//Connexion avec contrôle d'erreur
if (!Conn.Connect(chemin))
{
*etat = "erreur";
}
else
{
*etat = "deconnecte";
}
//écriture de la connexion
ADOCommand Cmd2(Conn.ADOConn,"update CONNEXION set ETAT='Déconnecté' where NOM='toto'");
Cmd2.Execute();

//écriture dans le journal de bord
insertion.Format("insert into journal_de_bord(type,nom) values('Déconnecté','toto')");
ADOCommand Cmd(Conn.ADOConn,insertion);
Cmd.Execute();

//Deconnexion
Conn.Disconnect();
}

4 réponses

steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
18 août 2005 à 14:50
Pourquoi extern "C" ? C'est du C++ ??
0
cs_mamag Messages postés 48 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 6 octobre 2005
18 août 2005 à 14:57
En fait, c'est une DLL développée en C++, mais qui sera utilisée par un programme fait en C,
pour le extern C, je m'étais inspirée d'exemple trouvés sur le net, je ne sais exactement à quoi il correspond, je pensais que c'était pour que la DLL soit visible par un programme C,
faudrait il alors mettre extern C++?
0
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
18 août 2005 à 15:20
Non dans ce cas c'est bon, extern "C" c'est pour interfacer du C avec
du C++ (pour ne pas décorer les symboles). Dans ton cas le extern "C"
permet d'appeler la fonction depuis un code C.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 août 2005 à 15:54
Un prog C qui passe du CString en param...
ça vient de sortir ce nouveau C ???

ciao...
BruNews, MVP VC++
0
Rejoignez-nous