cs_mamag
Messages postés48Date d'inscriptionvendredi 10 juin 2005StatutMembreDernière intervention 6 octobre 2005
-
18 août 2005 à 14:25
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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:
//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();
cs_mamag
Messages postés48Date d'inscriptionvendredi 10 juin 2005StatutMembreDerniè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++?
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 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.