+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Invité de passage
    Inscrit en
    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.

  2. #2
    Nouveau Membre du Club
    Profil pro
    Doctorant en informatique théorique
    Inscrit en
    décembre 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

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

    Informations forums :
    Inscription : décembre 2010
    Messages : 28
    Points : 28
    Points
    28

    Par défaut

    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)

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •