cybermax62
Messages postés54Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention10 janvier 2006
-
30 juil. 2004 à 09:07
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
30 juil. 2004 à 12:17
J'utilise ADO dans mon prog. J'ai aucun soucis pour l'utiliser, le problème n"est pas encore là. Mais vu que mon prog est très axé graphique avec directX, la mémoire est vite consommée.
J'ai remarqué qu'en utilisant la DLL, ADO avec la directive #import (celle que j'ai toujours utilisée) la conso en mémoire augmente de 6Mo (visible dans le gestionnaire des processus).
Dans l'aide MSDN, j'ai lu que avec #import la DLL n'est pas vraiment chargée comme à l'habitude, mais plutôt compilé en un autre fichier de type library (*.tlh et *.tli) utilisé celui ci par le prog véritablement et les fonctions de ADO.
Existe il une façon de libérer de la mémoire cette DLL puisque en fait je ne l'utilise que très peu.seulement 4 ou 5 accès au maximum dans tout le prog.
wargre
Messages postés649Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 9 septembre 20047 30 juil. 2004 à 10:44
a la rigeur tu peux importer ta DLL et la liberer a chaque fois que tu as fin LoadLibrary / FreeLibrary mais ca impose de charger dynamiquement les fonctions
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 30 juil. 2004 à 11:02
wargre > Nenni chargement dynamique, ADO ne s'utilise qu'a travers d'interfaces COM.
cybermax62 >
#import ne change QUE dans la maniere d'ecrire le prog, a la finale c'est idem.
Si vraiment tu veux tout liberer, reprends l'idee de Wargre, fais une dll perso que tu charges en dynamique, qui fait le travail avec ADO, et ensuite tu liberes ta dll par FreeLibrary.
Ceci dit, je n'ai jamais eu de problemes memoire avec ADO, verifie bien que tu liberes correctement tes pointeurs (_ConnectionPtr, _RecordsetPtr etc...).
cybermax62
Messages postés54Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention10 janvier 2006 30 juil. 2004 à 12:08
libérer les pointerus ???
je fais juste le pRs->Close(),pConn->Close() et ::CoUninitialize() à la fin.
J'ai essayé de faire delete sur ces pointeurs mais ca change pas grand chose.
De même j'utilise un variant et de bst, mais statique ou dynamique c quasi identique.
J'ai vraiement l'impression que ce vient du type de chargement de la DLL avec #import...