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 :

utilisation d'une dll écrite en C


Sujet :

Interfaçage autre langage Python

  1. #1
    Candidat au Club
    utilisation d'une dll écrite en C
    Bonjour,

    j'utilise aujourd'hui une dll écrite en C. Cette dll ne possède que 3 méthode.

    afin de l'utiliser conformément au langage python, j'utilise ctype et notamment cdll

    Pour l'une d'entre elle, le dernier argument que je doit donner est une fonction python que j'ai développé afin d'être appelé après l'exécution de la méthode dll.

    voici mes lignes de codes :

    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
     
    global dll
     
    dll = cdll.devlink
     
    print dll
     
    def MonEvent(pbxh = '', comms_evt = '', parm1= ''):
        """Ici mes evenement"""
     
        print comms_event
     
     
    def DemaraConnect():
        dll.DLOpen(0, '192.168.1.211', 'password', '', '', MonEvent) # ma fameuse méthode, avec comme dernier argument, le nom de ma fonction qui doit être rappelé en callback
     
     
    def EvenementAvaya():
        dll.DLRegisterType2CallDeltas(0,MonEvent())
        MainWindow.after(100, EvenementAvaya)


    Or, lorsque j'exécute le code, j'ai ce message d'erreur :

    dll.DLOpen(0, '192.168.1.211', 'password', '', '', MonEvent)
    ArgumentError: argument 6: <type 'exceptions.TypeError'>: Don't know how to convert parameter 6

    J'ai beau écumer les links sur ctypes, je n'arrive pas a trouver la solution.

    Pourriez vous m'aider svp.

    Merci par avance

  2. #2
    Nouveau membre du Club
    Hello
    apparemment il ne parvient pas a identifier le type de donnée dans le dernier paramètre (6) est tu sures que ta dll renvoie le bon type a chaque foit genre le gag de la string qui deviens un int ?

  3. #3
    Candidat au Club
    normalement on doit passer des pointeur. Mais python convertie et envoi normalement ce qu'il faut à la dll (la doc de ctypes dit que les arguments sont convertie automatique).

    Mais pour ma dll, je ne sais pas comment lui dire que c'est une fonction python .... Dans la doc de la dll, il dise qu'il faut donner l'adresse de la fonction ..... Je suppose que c'est son pointeur .... mais je sais pas comment lui donner cette adresse ....


  4. #4
    Membre à l'essai

###raw>template_hook.ano_emploi###