IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Fuite de m�moire StringToOleStr()


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut Fuite de m�moire StringToOleStr()
    Bonjour a tous...

    J'ai un petit bout de code qui exporte le r�sultat d'une requete (TQuery) dans un fichier EXCEL en utilisant OLE.

    Le code fonctionne parfaitement mais il g�n�re des fuites de m�moire (d�tect�es avec MemProof).

    Voici un extrait du code:

    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
     
      Variant vValue, vCell, vRange ;   
      int index = 0 ;
     
      // [...]
     
      vRange = "A1";
      vCell = vWorksheet.OlePropertyGet("Range", vRange);
     
      while( !monQuery->Eof )                      
      {
        vValue = StringToOleStr( monQuery->FieldbyName("MonChamp")->AsString ) ;
     
        vCell.OlePropertySet("Offset", index, 0, vValue );
     
        vValue = Unassigned ; // En théorie libère la mémoire, mais apparemment non
     
        index ++ ;
        monQuery->Next() ;
      }
    Je n'ai pas l'habitude de manipuler des Variant , donc peut etre que je m'y prend mal... Quelqu'un a-t-il une id�e?

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut
    Bon, j'ai r�solu le probl�me en �tudiant les type de fuite de m�moire et les messages de MemProof.
    L'utilisation de SysFreeString semble �viter d'avoir des fuites de m�moire.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
      while( !monQuery->Eof )                      
      {
        wchar_t *value= StringToOleStr( monQuery->FieldByName("MonChamp")->AsString );
        vCell.OlePropertySet("Offset", index, 0, value);
        SysFreeString(value);
        index ++ ;
        monQuery->Next() ;
      }
    Je laisse le post non r�solu pendant quelques jours au cas o� un une personne ayant d�j� �t� confront� au probl�me aurait une meilleure solution � propos�e.

  3. #3
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Salut sat83
    J'ai fais une recherche sur le Net avec " StringToOleStr & SysFreeString " c'est utilise en Delphi, je pense que c'est donc aussi valable en BCB

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut
    Ok merci, �a confirme donc ce que je pensais!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. fuite de m�moire ?
    Par salseropom dans le forum C
    R�ponses: 2
    Dernier message: 12/01/2006, 16h19
  2. R�ponses: 1
    Dernier message: 02/12/2005, 14h18
  3. fuite de m�moire
    Par mamag dans le forum MFC
    R�ponses: 17
    Dernier message: 19/08/2005, 10h42
  4. Fuite de m�moire en utilisant le template list
    Par schtroumpf_farceur dans le forum Langage
    R�ponses: 9
    Dernier message: 18/07/2005, 20h44
  5. R�ponses: 8
    Dernier message: 17/10/2002, 12h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo