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

Windows Discussion :

LoadLibrary de libcurl.dll


Sujet :

Windows

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 66
    Points : 43
    Points
    43
    Par défaut LoadLibrary de libcurl.dll
    Kikou tout le monde,

    Je veux utiliser la librarie CURL (libcurl.dll) http://curl.haxx.se/libcurl/ avec une liaison dynamique mais explicite, c'est a dire faire des loadlibrary et tout et tout.
    le truc, c'est que j'ai plusieurs fonctions a appeler (5 en tout)
    faut que je fasse comment (1 chargement, et 5 getproadress pour les 5 fonctions des le debut de ma fonction appelante) ?
    qq a un bout de code a me refiler, ca sera sympa.

    merci

    [/url]

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    faut que je fasse comment (1 chargement, et 5 getproadress pour les 5 fonctions des le debut de ma fonction appelante) ?
    Tout à fait. + le FreeLibrary à la fin.
    Le bout de code, ben en gros tu reprends le prototype de tes 5 fonctions, tu en crée un type. Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // on veut charger : size_t function(char *bufptr, size_t size, size_t nitems, void *userp); 
    // type function_t
    typedef size_t (*function_t)(char *, size_t, size_t, void *); 
    // chargement dynamique
    function_t function = (function_t)GetProcAddress( hLibCurl, TEXT( "function" ) );
    // vérifier que != NULL
    
    // appel
    function( 0, 0, 0, 0 );
    Ca devrait être pas loin de ça.

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 18
    Points : 18
    Points
    18
    Par défaut
    Juste un petit soucis : tu vas devoir te passer de "curl.h" (sinon, il ne trouvera pas tes 5 fonctions au link, logique).

    Cela implique qu'il va falloir recopier la déclaration des enums CURLcode et CURLoption, ainsi que placer les macros suivantes avant la déclaration du dernier type enum :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #define CURLOPTTYPE_LONG          0
    #define CURLOPTTYPE_OBJECTPOINT   10000
    #define CURLOPTTYPE_FUNCTIONPOINT 20000
    
    #define CINIT(name,type,number) CURLOPT_ ## name = CURLOPTTYPE_ ## type + number
    Voici la déclaration des 6 fonctions (j'en ai une de plus que toi, pioche!), ainsi que le handle CURL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    typedef void* CURL;
    
    typedef char* (*CURL_ESCAPE)(const char*, int);
    typedef void (*CURL_FREE)(void*);
    typedef CURL* (*CURL_EASY_INIT)(void);
    typedef CURLcode (*CURL_EASY_SETOPT)(CURL*, CURLoption, ...);
    typedef CURLcode (*CURL_EASY_PERFORM)(CURL*);
    typedef void (*CURL_EASY_CLEANUP)(CURL*);

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Ok thanks u !

    je pense que ca va marcher !

    merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD12] API curl et libcurl.dll
    Par zimonn10 dans le forum WinDev
    Réponses: 8
    Dernier message: 27/04/2009, 11h37
  2. Dépendance DLL - libcurl.dll
    Par Olphébus dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 08/03/2009, 20h00
  3. Réponses: 1
    Dernier message: 06/10/2006, 10h21
  4. [DLL] LoadLibrary et FreeLibrary
    Par Pedro dans le forum Delphi
    Réponses: 9
    Dernier message: 09/09/2006, 07h53
  5. [Bibliothèque] LibCurl et Dll
    Par Skyounet dans le forum Windows
    Réponses: 5
    Dernier message: 24/08/2006, 21h56

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