IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Python Discussion :

utilisation dll dans un script python


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut utilisation dll dans un script python
    Bonjour,

    Voilà, je cherche à savoir comment utiliser les fonction d'une dll (codé en c) dans un script python.

    Je pense que ctypes serait un outil me permettant de le faire mais je n'ais pas tres bien compris comment faire...

    Si quelqu'un pouvais me donner un exemple simple ca serait sympa !

    exemple :
    J'ai par exemple une dll qui comporte une fonction :

    //madll.h :
    int carre(int x1, int x2);

    comment je fais pour utiliser la fonction carre dans un script python ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 726
    Par défaut
    Salut,

    La bibliothèque vient avec un tutoriel assez complet.
    Pourquoi ne pas montrez ce que vous avez fait et illustrer les problèmes que vous rencontrez?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    merci de cette réponse rapide.

    Bah, j'essais simplement d'importer ma dll et cela ne fonctionne pas...
    le script se ferme automatiquement et ne se met même pas en pause car il plante à la ligne mydll...

    j'ai tenté de l’exécuter au seins de l’interpréteur python et je rencontre un : NameError: name 'ctypes' is not defined

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # -*-coding:utf-8 -*
     
    from ctypes import * 
    import os
     
    mydll = ctypes.WinDLL('C:\...\funcfunc.dll') # j'ai également éssayé avec des "/"
     
    os.system("pause")

    EDIT :

    erreur bête... (surement la fatigue...)
    en faite non, dans l’interpréteur python je n'ai pas d'erreur si je retire le ctypes avant WinDLL :
    mydll = WinDLL('C:/.../func.dll') # il n'indique pas d'erreur


    Mais le script.py quand à lui persiste à bloqué... il n’apprécie pas du tout :
    mydll = WinDLL('C:/.../func.dll')

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 726
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    j'ai tenté de l’exécuter au seins de l’interpréteur python et je rencontre un : NameError: name 'ctypes' is not defined
    Normal, en écrivant:
    vous récupérez les définitions de /ctypes/ pour ne pas avoir a les préfixer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mydll = ctypes.WinDLL('C:\...\funcfunc.dll')
    va planter a cause de 'ctypes'.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mydll = WinDLL('C:\...\funcfunc.dll')
    plantera peut être aussi mais pour autre chose.

    Ceci dit, si vous êtes déjà coince avec des trucs aussi basiques pourquoi vous lancer dans un truc aussi complique qu'interfacer une DLL externe avec Python?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    vous avez répondu avant que j'ai le temps de finir mon édit ^^'

    en faite voilà je suis actuellement en alternance et je débute totalement en python.
    je vais travailler sur un outil codé entièrement en python.
    Dans celui ci on aimerai rajouter des fonctionnalités.
    Une équipe a déjà crée ces fonctionnalités pour un autre produit sous forme d'une dll (codé en c).
    Il faudrait que je soit capable d'interfacer la dll avec un script python afin de simplement pouvoir utiliser les fonctions codé en C.

    Je ne pense pas que cela devrait être très compliquer :-/

    Je passe d'habitude beaucoup de temps à chercher à comprendre tout seul, mais là, il est vrai que j'ai posé une question assez basique...
    Je ne dirais pas que j'étais "coincé" car j'ai posté sur le forum immediatement sans avoir trop cherché (et je m'en excuse), dans le but d'avoir une réponse rapide qui me donnerait exemple d'utilisation d'une fonction

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 726
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    Il faudrait que je soit capable d'interfacer la dll avec un script python afin de simplement pouvoir utiliser les fonctions codé en C.
    "etre capable" commence par comprendre ce qui est écrit dans la documentation puis réaliser le code qui répond a vos besoins. Pour l'instant, vous n'arrivez pas a lire la doc. ni a comprendre les messages d'erreurs qui vous sont retournes.
    C'est super! Vous avez pleins de choses a apprendre et a découvrir pour égayer votre journée.

    Citation Envoyé par joks93440 Voir le message
    vous avez répondu avant que j'ai le temps de finir mon édit ^^'
    Certes mais ça devrait remonter un message d'erreur... qui devrait être plus ou moins explicite.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    "etre capable" commence par comprendre ce qui est écrit dans la documentation puis réaliser le code qui répond a vos besoins. Pour l'instant, vous n'arrivez pas a lire la doc. ni a comprendre les messages d'erreurs qui vous sont retournes.
    C'est super! Vous avez pleins de choses a apprendre et a découvrir pour égayer votre journée.
    Je pense que chaque bon développeur au monde est passé par mon étape qui est : débuter !
    donc oui, si je suis en formation c'est pour apprendre à faire des choses QUE JE NE SAIT PAS FAIRE...
    les débutant ont toujours fait des erreurs "bête" (c'est CA être débutant)... Le principal étant de les comprendre et d'aller de l'avant !

    Et, au dernières nouvelles, le forum développez.net était justement fait pour l'entraide. Et les membres qui ne souhaitent participer à un topic peuvent l'ignorer, mais au moins, ceux qui y participent se doivent d'éviter de dévaloriser les personnes cherchant à repousser leur niveau de connaissances... (chose que je ne devrait normalement pas expliquer à une personne qualifié "d'expert sénior confirmé" comptabilisant 4067 messages...)





    J'aimerais si possible revenir au sujet principal du post qui consistait à avoir un :
    exemple basique de l'utilisation d'une fonction se trouvant dans une dll via un script python.
    car j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import ctypes
    malib = ctypes.WinDLL("c:/.../func.dll")
    res = malib.carre(2, 3)
    Mais là il ne trouve pas la fonction de ma DLL :-/ (AttributeError: function 'multiplier' not found

    Si quelqu'un avait une réponse je l'en remercierais énormément.
    Dans le cas contraire je mettrait simplement beaucoup plus de temps en ramant tout seul.

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 726
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    Et les membres qui ne souhaitent participer à un topic peuvent l'ignorer, mais au moins, ceux qui y participent se doivent d'éviter de dévaloriser les personnes cherchant à repousser leur niveau de connaissances... (chose que je ne devrait normalement pas expliquer à une personne qualifié "d'expert sénior confirmé" comptabilisant 4067 messages...)
    Je ne vois pas en quoi il est dévalorisant de conseiller a quelqu'un qui débute de s'attaquer a des sujets plus simples plutôt que de lui donner des solutions qu'il utilisera sans rien comprendre.
    D'autant que les problèmes d’interfaçage d'une DLL avec ctypes sont assez zarbis, difficiles a reproduire,... Et généralement dus par la construction de la DLL et non par ctypes (qui ne fait que subir les défauts).

    exemple basique de l'utilisation d'une fonction se trouvant dans une dll via un script python.
    car j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import ctypes
    malib = ctypes.WinDLL("c:/.../func.dll")
    res = malib.carre(2, 3)
    Mais là il ne trouve pas la fonction de ma DLL :-/ (AttributeError: function 'multiplier' not found
    Si ça ne trouve pas "multiplier" alors que le code devrait chercher "carre" est-ce la vraie erreur ou un cut&paste foireux?

    Comme vous travaillez sous Windows, vous avez lu le chapitre ad hoc qui expose les soucis pour récupérer les fonctions dans les DLL Windows?

    Si vous avez utilise un compilo. C++, le name-mangling transformera "carre" en autre chose...

    Avez vous essaye de faire un "link /dump /exports" (ou equivalent) de la .DLL pour voir les noms "exportes"?


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Je ne vois pas en quoi il est dévalorisant de conseiller a quelqu'un qui débute de s'attaquer a des sujets plus simples plutôt que de lui donner des solutions qu'il utilisera sans rien comprendre.
    D'autant que les problèmes d’interfaçage d'une DLL avec ctypes sont assez zarbis, difficiles a reproduire,...
    ok, dit de cette façon, cela à un sens beaucoup moins "agressif" que dans le message précédent.



    Citation Envoyé par wiztricks Voir le message
    Si ça ne trouve pas "multiplier" alors que le code devrait chercher "carre" est-ce la vraie erreur ou un cut&paste foireux?
    oui copié collé foireux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import ctypes
    malib = ctypes.WinDLL("c:/.../func.dll")
    res = malib.multiplier(2, 3)
    AttributeError: function 'multiplier' not foud

    Citation Envoyé par wiztricks Voir le message
    Comme vous travaillez sous Windows, vous avez lu le chapitre ad hoc qui expose les soucis pour récupérer les fonctions dans les DLL Windows?
    Oui je suis justement dessus en train d'essayer de faire un getattr(), mais je dois sans doute être maladroit...


    Citation Envoyé par wiztricks Voir le message
    Si vous avez utilise un compilo. C++, le name-mangling transformera "carre" en autre chose...
    ok, merci pour l'info c'est une notion que je ne connaissais pas !
    effectivement j'ai utilisé le compilo MS visual c++ 2005

    Citation Envoyé par wiztricks Voir le message
    Avez vous essaye de faire un link /dump /exports de la .DLL pour voir les noms "exportes"?
    Non je n'ai pas essayé car c'est également une notion qui m'est également inconnue :-/.
    Comment fait-on cela ?

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 726
    Par défaut
    Quand je ne sais plus, je demande a mon ami Google.
    Essayez de voir si vous pouvez faire quelque chose avec ca
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    Oui effectivement j'ai essayé cela également et je suis toujours confronté au 'multiplier' not found apres la ligne print libtest.multiplier(2, 2).

    j'arrive à charger la DLL mais pas à utiliser ses fonctions... "not found" à tous les coups

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 726
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    Oui effectivement j'ai essayé cela également et je suis toujours confronté au 'multiplier' not found apres la ligne print libtest.multiplier(2, 2).
    Vous avez essaye quoi?
    Dans l'URL que j'ai poste l'important est dans les déclarations effectuées dans le code C++ et l’édition de lien.

    Pourquoi faites vous cela?
    Interfacer une DLL avec Python fait sens lorsque vous voulez:
    - utilisez une bibliothèque existante produite par d'autres,
    - optimisez du code Python déjà réalisé,
    Comme vous êtes propriétaire de la DLL, pourquoi ne pas tout coder en Python?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Vous avez essaye quoi?
    Dans l'URL que j'ai poste l'important est dans les déclarations effectuées dans le code C++ et l’édition de lien.
    mon code C++ (main.cpp):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <stdio.h>
    #include "main.h"
     
    int __declspec(dllexport) multiplier(int x1, int x2){
        return x1*x2;
    }
    mon header:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #ifndef __MAIN_H__
    #define __MAIN_H__
     
    int __declspec(dllimport) multiplier(int x1, int x2);
     
    #endif // __MAIN_H__
    //script python
    from ctypes import *
    mydll = WinDLL('C:/Users/g571676/Desktop/Workspace/Python/test_Utilisation_dll/func/func.dll')
    resultat = zelib.multiplier(2, 3) # cette ligne plante

    AttributeError: function ‘multiplier’ not found

    J’ai également tester:
    Libtest = cdll.LoadLibrary('C:/Users/g571676/Desktop/Workspace/Python/test_Utilisation_dll/func/func.dll')
    Print libtest.multiplier(2, 2) # cette ligne plante

    Même erreur : AttributeError: function ‘multiplier’ not found

    Citation Envoyé par wiztricks Voir le message
    Pourquoi faites vous cela?
    Interfacer une DLL avec Python fait sens lorsque vous voulez:
    - utilisez une bibliothèque existante produite par d'autres,
    - optimisez du code Python déjà réalisé,
    Comme vous êtes propriétaire de la DLL, pourquoi ne pas tout coder en Python?
    - W
    explications:
    -j'ai une application qui tourne en python.
    -dans cette application je voudrais manipuler le format WSQ.
    -Je dispose d'une DLL codé en C qui me permet de manipuler le format WSQ

    Je voudrait donc interfacer ma DLL avec mon script afin que mon application python puisse manipuler le format WSQ.

    Ici, j'essais d'utiliser une fonction "multiplier" d'une simple DLL que je viens de créer afin de tester le principe.

    Une fois que j'arriverais à maîtriser l'appel de fonction de ma simple DLL, j'appliquerai le principe sur mon vrai projet.




    EDIT :
    Si ça peut aider j'ai fait un libtest.__dict__ (en pièce jointe) (effectivement, dans la liste de ce que je peux appelé, je n'y voit pas ma fonction "multiplier"...)
    Est-ce que je ne devrais pas en quelque sorte linké le .lib de ma DLL dans mon script python ?
    dans python, ne devrais-je pas utiliser le .h de ma dll ?

    C’est peut-être pour ça que mon script python ne retrouve pas le nom de mes fonction ?
    Images attachées Images attachées  

  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 726
    Par défaut
    Salut,
    Je ne vois pas le:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <windows.h>
     
    BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
    {
    return TRUE;
    }
    vous êtes sur que c'est une option?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    je n'ai jamais eu à utiliser ce morceau de code pour générer une DLL.

    voici un lien similaire à celui que vous m'avez envoyé:
    http://sametmax.com/appeler-du-code-...n-avec-ctypes/

    vous y constaterez le même principe mais sans la fonction DllMain

    de plus j'ai tout de même essayé avec cette fonction et mon compilateur n'apprécie PAS DU TOUT !
    c'est peut être car il utilise visual C#

  16. #16
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 726
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    voici un lien similaire à celui que vous m'avez envoyé:
    http://sametmax.com/appeler-du-code-...n-avec-ctypes/
    vous y constaterez le même principe mais sans la fonction DllMain
    Croyez vous que les DLL se construise de la même façon sur Linux et Windows?

    de plus j'ai tout de même essayé avec cette fonction et mon compilateur n'apprécie PAS DU TOUT !
    c'est peut être car il utilise visual C#
    Seriez vous en train de raconter que vous compilez votre DLL en C#?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    je sais bien que els DLL ne se construisent pas de la même manière sous windows et sous linux....

    Mais le tutoriel que je vous ai transmis indique que la méthode d'utilisation est la même !

    lire : "On compile tout ça. Comme je suis sous Nunux, j’utilise GCC et j’obtiens un .so, mais sous Windows c’est pareil avec VisualStudio et les .dll."


    deuxiemement :
    quand je dis que :
    de plus j'ai tout de même essayé avec cette fonction et mon compilateur n'apprécie PAS DU TOUT !
    c'est peut être car il utilise visual C#
    cela veut dire que j'ai également essayé juste (au cas ou) d'intégrer la fonction qui est dans votre lien et que mon compilateur Visual C++ 2005 n'as pas apprécié (ce que j'ai déjà précisé plus haut...)

    J'ai seulement précisé que c'est dans VOTRE lien que l'éditeur du tuto utilise "visual C# 2008"

    De toute manière, si vous avez déjà créer une DLL en C, je ne pense pas que vous avez déjà utilisé ce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <windows.h>
     
    BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
    {
    return TRUE;
    }

  18. #18
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 726
    Par défaut
    J'ai pris la peine de vérifier que l'exemple fonctionnait avant de vous le suggérer.
    Si vous n'arrivez pas a le mettre en œuvre chez vous, c'est que:
    - vous n'appliquez pas bêtement ce qui est propose ou
    - votre environnement de développement C n'est pas construit/configure proprement
    - autre?
    A vous de voir.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  19. #19
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    Effectivement je penche aussi pour un problème local lié à mon environnement.

    car pour que quelque chose d'aussi simple ne fonctionne pas... cela doit venir de là...
    je vais tenté le coup sur mon pc chez moi, où l’environnement est sein, plutôt que sur mon pc de test (au bureau).

  20. #20
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Par défaut
    C'est bon, c'était un problème lier à au compilateur de mon IDE.
    en utilisant désormais : cl -LD dlltest.c -Fetest.dll pour compiler, je peux importer mes fonctions dans python.

    DERNIÈRE QUESTION :


    Cette ligne de commande me permet de compiler un .c.
    Je dois donc recompiler ma dll en utilisant cette ligne de commande.

    Comment adapter cette ligne de commande pour compiler un fichier testA.c en associant les fichiers headerA.h, headerB.h etc... qu'il utilise et en faisant un link vers une lib statique ?

    Une fois que j'aurais ma dll compilé de cette facon, je n'aurais (en théorie) plus aucun problème pour utiliser les fonctions qu'elle offre !
    Et le topic sera résolu ^^

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Utilisation d'une librairie dynamique C++ dans un script python
    Par johnraikonen dans le forum Interfaçage autre langage
    Réponses: 6
    Dernier message: 27/01/2011, 15h48
  2. Utilisation de C++ dans un script python.
    Par Ekinoks dans le forum Interfaçage autre langage
    Réponses: 8
    Dernier message: 18/01/2007, 19h03
  3. import dans les script python (objet zope)
    Par cronos6 dans le forum Zope
    Réponses: 5
    Dernier message: 10/09/2006, 14h47
  4. Radio boutton dans un script python
    Par Abla23 dans le forum Zope
    Réponses: 17
    Dernier message: 12/07/2006, 17h12
  5. Réponses: 3
    Dernier message: 05/04/2005, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo