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

Interfaçage autre langage Python Discussion :

module ctypes de wrapping des dll


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 21
    Points
    21
    Par défaut module ctypes de wrapping des dll
    Bonjour à tous,

    J'utilise ctypes pour activer une dll écrite en C qui effectue des calculs complexes pour évaluer la déclinaison magnétique en fonction de la latitude et de la longitude.
    J'ai trouvé la fonction qui charge et active la fonction exportée de ma dll et cela fonctionne bien, MAIS je cherche la fonction de libération de la dll !
    Le chargement et l'accès à la dll se fait dans une fonction python de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def calldll(self, latitude, longitude):
        self.declinaison = windll.geodecl.princ(latitude, longitude)
    QUESTION est-ce que la dll est libérée en quittant la fonction ?

    Merci de me répondre !

    @+
    jvpic

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tu fais un load library au démarrage du module, a priori, elle ne sera libérée qu'à la fin de l'application.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Merci de ta contribution

    JP

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ah si, tu devrais pouvoir supprimer le chargement en appelant explicitement del madll
    Le mieux, si tu as absolument besoin de libérer ta dll, serait d'avoir un singleton qui charge la bibliothèque à sa création et la libère à sa destruction, sachant qu'il peut être chargé et déchargé plusieurs fois par exécution, ça risque d'être un peu lourd

Discussions similaires

  1. Comment (si possible) gérer des dll en Asm?
    Par @drien dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 06/01/2004, 15h59
  2. Priorité de recherche des DLLs
    Par patapetz dans le forum Windows
    Réponses: 3
    Dernier message: 10/09/2003, 18h44
  3. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  4. Réponses: 27
    Dernier message: 03/02/2003, 12h27
  5. [] [Install] Problème de mise à jour des dll
    Par pepper dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 23/01/2003, 22h34

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