probleme pour utiliser des fonctions c++ dans des dll - Python - Programmation
Marsh Posté le 12-03-2006 à 09:45:52
ta fonction est visible que par la class, d'abord il faut instancier la class et ensuite utiliser Close() avec cet instance
Marsh Posté le 13-03-2006 à 09:09:10
be en faisant essai = cdll.load("fichier.dll", mode=None) je cré bien une instance de la classe non?
Marsh Posté le 13-03-2006 à 13:07:58
Non. en faisant essai = cdll.load(...) tu as acces au dll non pas au(x) classe(s) se trouvant à l'interieur de dll. Je crois qu'il y a qq probleme avec ctypes pour utiliser les class de C++ ... Pour surmonter les difficultés de ctypes, cad pour instancier la class il peut eventuellement avoir une fonction dans le dll qui return une instance. Tu peux essayer le code ci dessous (le resultat n'est pas garantie). Si non il faut utiliser SWIG .
dans le dll:
class MyClass{
....
public:
unsigned char Close (void){ ....}
};
MyClass doClass(..){
return new MyClass();
}
en python:
essai = cdll.load("fichier.dll", mode=None)
z= essai.doClass()
z.Close()
Marsh Posté le 13-03-2006 à 14:02:21
merci de la reponse
hum mais le hic c'est que je peux pas modifier la DLL
je vais chercher du coter de swig car je ne sais pas ce que c'est.
Marsh Posté le 10-03-2006 à 09:23:25
bonjour a tous,
je me forme à python depuis le debut de la semaine et j'utilise SPE comme IDE sous windows.
j'ai déja bien avancé mais je suis face à un problème que je n'arrive pas a résoudre.
On m'a fourni des DLL développé sous visual c++ (ainsi que les sources) et j'essaye d'importer les fonctions de cette DLL.
j'ai fais pas mal de recherche et j'ai trouvé "ctypes"
voila mon code :
alors que dans le fichier .h des sources, cette fonction close existe :
je ne comprend pas comment faire pour utiliser ce module ctypes...
alors si vou spouviez m'aider
merci
---------------
Mes ventes vers Grenoble & Gresivaudan