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 ?