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

VB.NET Discussion :

[VB..NET] Problème de DLL


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut [VB..NET] Problème de DLL
    Bonjour,

    Je développe un programme qui fait appel à différentes DLL que j'ai aussi développés. Les DLL sont des petits programmes (forms + classes + modules).
    pour ouvrir une DLL (un programme) je fais ceci dans l'eveneement click d'un bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim test_prg as new DLL1.clDLL1
     
    test_prg.clmain()
    Tous se passe bien mais lorsque que je reclick sur le bouton, je remarque que toutes les varaibles reste chargées en mémoires avec les anciennes valeurs. Il semble que la DLL reste chargée en mémoire. Comment faire pour la décharger en mémoire avant d'instancier un nouvel objet.

    D'avance , je vous remercie.

    OLBI

    Message édité par Aspic : Ajout des balises manquantes

  2. #2
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    En théorie on utilise le garbage collector :
    Mais c'est assez déconseillé et je ne suis pas un spécialiste en la matière
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut
    je vais jeter un coup d'oeil sur le GC

    Merci

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    En théorie, le ramasse miettes n'est pas conçu pour être manipulé directement.
    Tu peux essayer par contre en passant à null les variables que tu veux libérer au moment où tu n'en as plus besoin.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Citation Envoyé par SaumonAgile
    En théorie, le ramasse miettes n'est pas conçu pour être manipulé directement.
    Tu peux essayer par contre en passant à null les variables que tu veux libérer au moment où tu n'en as plus besoin.
    Exact mais je pensais qu'il avait deja fais un :
    et que le probleme subsistait D'où ma proposition d'utiliser le ramasse miettes (cool ce nom )
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut
    je fais bien test_prg = nothing mais j'ai l'impression que ca me detruit rien du tout.
    Ce que je souhaite c'est de décharger de la mémoire la DLL comme si je sortais du programme et puis le rappeler afin que tout soit bien réinitialiser car les variables qui sont dans les modules définit en public reste chargée quand je reclick sur le meme bouton.

    Merci de l'attention que vous portez à ce post.

    OLBI

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Pourquoi est ce que tu ne réinitialise pas toi-même les valeurs de la classe ? Le fonctionnement que tu décris me paraît normal.
    Par contre, ton idée de décharger l'assembly me semble un peu bizarre...
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  8. #8
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    A mon sens c'est pas possible de décharger l'assembly... mais je ne vois meme pas où est l'interet si tu comptes plus tard la recharger.
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut
    Lorsque je la charge je suis sur que toutes est bien initialisé (afin d'éviter des erreurs de variables qui seraient toujours chargées.


    OLBI

  10. #10
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Et si tu détruit ton objet et que tu le reinstancies, les variables ne sont pas reinitialisées ?
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut
    Je pensais effectivement que ca aurait pu résoudre mon problème mais hélas non tous reste chargé en mémoire jusqu'à la fin du programme.

  12. #12
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Donc y'a un probleme dans la DLL car c'est pas normal... C'est toi qui a fait cette DLL ?
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 284
    Par défaut
    Oui c'est moi qui l'ai fait. Dans 90% des cas j'ai une procédure générale qui est sensée me reinitialiser mes variables mais il se peut que je n'en oublie un jour une dans la reinitialisation et la bonjour les dégats. Je pensais qu'avec la DLL j'aurais pu pallier à ce problème.

  14. #14
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Alors dans ce cas regarde bien dans les précédure de destruction des objets si toutes les variables sont réinitialiser.

    Mais tu n'as pas un "Sub New" pour ta dll ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Test as New Ma_Dll(Arg())
    et dans ta DLL tu devrais avoir un code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub New(Byval Arguments as stirng())
       Var = Argument(0)
       Var1 = Argument(1)
     'etc
    End Sub
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/03/2010, 09h08
  2. [C#][ASP.NET] Problème lors du déploiement d'une DLL
    Par dinbougre dans le forum Framework .NET
    Réponses: 2
    Dernier message: 21/02/2008, 10h14
  3. [C#.NET WINFORMS] Problème de .dll
    Par MrCyprom dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/09/2006, 12h54
  4. [vb.net]Problème avec des fichiers DLL
    Par nakata77 dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/09/2006, 18h40
  5. [VB.NET] Problème Dll
    Par olbi dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/07/2006, 14h13

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