Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Interfaçage autre langage
Interfaçage autre langage Forum d'entraide pour l'interfaçage avec d'autres langages (ctypes, api C, swig, ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/03/2011, 17h50   #1
elbadji
Invité de passage
 
Inscription : janvier 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 7
Points : 0
Points : 0
Par défaut Ctypes avec une bibliothéque DLL

Bonjour;
Voila je suis nouveau avec python et je veux travailler avec Lpsolve55.dll en utilisant Ctypes, je l'ai appelé en utilisant ce code:

Code :
1
2
from ctypes import *
lpsolve = cdll['lpsolve55.dll']
et ma question est toute simple(sachant que j'ai bel est bien cherché dans le net et je n'ai pas pu le faire): comment appeler une fonction de lpsolve avec ctypes .

comme exemple j'ai fait :

Code :
lp = lpsolve('make_lp', 0, 4)
et le message d'erreur était:
Code :
'CDLL' object is not callable
et merci pour votre aide.
elbadji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 13h08   #2
Naked
Nouveau Membre du Club
 
Aaron
Doctorant en informatique théorique
Inscription : décembre 2010
Messages : 28
Détails du profil
Informations personnelles :
Nom : Aaron
Localisation : Belgique

Informations professionnelles :
Activité : Doctorant en informatique théorique

Informations forums :
Inscription : décembre 2010
Messages : 28
Points : 27
Points : 27
Salut,

C'est vrai qu'il y a peu de documentation concernant ctypes, mis à part cette page.

Concernant ta question, tu dois définir en python un objet correspondant à la fonction de ta libraire. Par exemple :
Code :
1
2
3
ma_fonction_externe = lpsolve.ma_fonction
ma_fonction_externe.argtypes =[liste des types des arguments de ma_fonction]
ma_fonction_externe.restype = le type de retour de ma_fonction
Note que les types que tu utilises sont des types ctypes. Par exemple, si le prototype de ma_fonction est
Tu dois dès lors utiliser c_int et c_byte (la encore, je te renvoie sur la page proposée plus haut)
Naked est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h13.


 
 
 
 
Partenaires

Hébergement Web