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 :

Interfaçage Python sur dll C/C++


Sujet :

Interfaçage autre langage Python

  1. #1
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut Interfaçage Python sur dll C/C++
    Bonjour,

    je suis en train de travailler sur un projet où j'ai une dll C++ et je dois interfacer ça avec du python.
    J'essaye de comprendre comment ça fonctionne avant de coder (ça m'a l'air trop simple, je pense que j'ai raté quelque chose).
    Avec la dll est fourni un fichier header (je le coupe j'en met qu'un bout) :

    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
    21
    // Copyright (C) 2013-2014 Thalmic Labs Inc.
    // Distributed under the Myo SDK license agreement. See LICENSE.txt for details.
    #ifndef MYO_LIBMYO_H
    #define MYO_LIBMYO_H
     
    #include <stdint.h>
     
    #include "libmyo/detail/visibility.h"
     
    #ifdef __cplusplus
    extern "C" {
    #endif
     
    LIBMYO_EXPORT
    int8_t libmyo_event_get_emg(libmyo_event_t event, unsigned int sensor);
     
    #ifdef __cplusplus
    } // extern "C"
    #endif
     
    #endif // MYO_LIBMYO_H
    LIBMYO_EXPORT est remplacé par __attribute__, __declspec ou autre selon l'environnement.

    Pour appeler libmyo_event_get_emg en Python, je fais le fichier suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import ctypes
    # Chargement de la bibliothèque, avec un chemin plus complet que ça
    madll = windll.LoadLibrary("myo64.dll")
    # On appelle la fonction
    mavar = madll.libmyo_event_get_emg("tsointsoin",4)
    # On affiche le résultat
    print "Ma variable vaut : ", mavar
    Et c'est tout ? C'est aussi simple ?
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par ManusDei Voir le message
    Et c'est tout ? C'est aussi simple ?
    Tant que vous évitez les écueils du name-mangling du compilo C++, c'est "simple".
    Notez que tout le mérite vient de libffi que Python (et d'autres langages) utilisent pour "intégrer" du code C.
    Les vraies difficultés sont ailleurs: gestion de la mémoire, cycle de vie des objets dans les deux mondes,...
    Mais tout dépend de ce que fait la DLL.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Interfaçage Python (DLL?)
    Par philnext dans le forum Interfaçage autre langage
    Réponses: 3
    Dernier message: 28/01/2011, 11h54
  2. Python sur un clé USB -> Possible ?
    Par Olivier_ dans le forum Général Python
    Réponses: 26
    Dernier message: 09/07/2009, 09h07
  3. Question sur DLL
    Par inertia dans le forum Windows
    Réponses: 7
    Dernier message: 08/08/2006, 11h07
  4. Probleme sur DLL & VCL
    Par Romain² dans le forum Langage
    Réponses: 4
    Dernier message: 03/04/2006, 18h10
  5. [Versioning]Quels eclaircissements sur Dll/GAC/References?
    Par chnew dans le forum Framework .NET
    Réponses: 4
    Dernier message: 22/03/2006, 18h11

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