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

WinDev Discussion :

[WD12] API curl et libcurl.dll


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 58
    Points : 38
    Points
    38
    Par défaut [WD12] API curl et libcurl.dll
    Je développe un applicatif de téléchargement FTP.
    Mon but final est d'arriver à reprendre un téléchargement là ou il en était en cas de coupure.
    Après épluchage des forums, je me suis rendu à l'évidence WINDEV ne le gère pas.
    J'ai donc pensé à une api, en l'occurrence curl qui gère cela.
    J'ai téléchargé libcurl.dll, mais je ne sais pas quoi en faire, une fois copiée dans système32.
    Merci pour vos réponses si une autre solution plus pratique vous vient à l'esprit, je vous en prie, faites m'en part.

  2. #2
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Regarder sur le site de curl pour disposer d'exemple d'utilisation (souvent vb, c#,...)

    ENsuite si c'est un composant net => l'intégrer dans ton projet WD14.

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 58
    Points : 38
    Points
    38
    Par défaut
    Merci à toi pour ta réponse.
    Petit correctif, je ne possède que windev 12.
    Je vais regarder sur le site curl et donnerai la solution si je trouve.
    Sinon je pensais peut être utiliser utiliser php qui dois gérer aussi la reprise de téléchargement si je ne me trompe pas

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 58
    Points : 38
    Points
    38
    Par défaut
    C'est bon j'ai réussi à appeler ma DLL et à démarrer un session cURl sous windev
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NEasyhandle = AppelDLL32("dll\libcurl","curl_easy_init")
    Il faut ensuite dans mon cas paramétrer les différentes options de connexion.
    pour ceci il faut appeler la DLL et passer un certain nombre de paramètres.
    Je suis pour ma part dans le cas d'un connexion FTP, passive avec username et password.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     //passe l'adresse du serveur FTP
    nCURLcode = AppelDLL32("dll\libcurl", "curl_easy_setopt", &NEasyhandle,CURLOPT_URL, "ftp://192.168.5.1")"
     //passe le nom d'utilisateur
    nCURLcode = AppelDLL32("dll\libcurl", "curl_easy_setopt", &NEasyhandle, CURLOPT_USERNAME, usr)
     //passe mot de passe
    nCURLcode = AppelDLL32("dll\libcurl", "curl_easy_setopt", &NEasyhandle, CURLOPT_PASSWORD , pwd)
    AppelDLL32("dll\libcurl", "curl_easy_perform", &NEasyhandle
    Et evidemment cela ne fonctionne pas, car pour commencer je ne sais pas quoi mettre comme valeur aux constantes (CURLOPT_URL, CURLOPT_USERNAME, CURLOPT_PASSWORD)

    Si quelqu'un pouvait me dire ce qu'il faut faire cela m'enlèverait une belle épine du pied.

    Je vous remercie d'avance et vous souhaite une bonne journée

  5. #5
    Membre expérimenté Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Points : 1 322
    Points
    1 322
    Par défaut
    Les valeurs de tes constantes doivent être dans la documentation. Sinon, si tu as le code source, tu peux toujours aller fouiller dedans.

  6. #6
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 58
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup je vais aller fouiller, mais sinon à part ça suis-je à peu près sur la bonne piste. les commandes ressemblent t-elles à quelque chose??

  7. #7
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 58
    Points : 38
    Points
    38
    Par défaut
    Ce que je ne comprends pas dans ce code et que je trouve abhérent c'est que l'on écrase à chaque fois les informations stockées dans nCURLCode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     //passe l'adresse du serveur FTP
    nCURLcode = AppelDLL32("dll\libcurl", "curl_easy_setopt", &NEasyhandle,CURLOPT_URL, "ftp://192.168.5.1")"
     //passe le nom d'utilisateur
    nCURLcode = AppelDLL32("dll\libcurl", "curl_easy_setopt", &NEasyhandle, CURLOPT_USERNAME, usr)
     //passe mot de passe
    nCURLcode = AppelDLL32("dll\libcurl", "curl_easy_setopt", &NEasyhandle, CURLOPT_PASSWORD , pwd)
    AppelDLL32("dll\libcurl", "curl_easy_perform", &NEasyhandle
    Peut_être me trompe-je, merci de m'apporter des précisions.

  8. #8
    Membre chevronné
    Avatar de mogwai162
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vosges (Lorraine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Points : 1 860
    Points
    1 860
    Par défaut
    Si moi non plus je ne me trompe-je pas, je dirais que nCURLcode n'est qu'un code erreur. Alors pourquoi ne pas l'écraser si tu ne le teste pas ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 58
    Points : 38
    Points
    38
    Par défaut
    Oui tout à fait je m'excuse j'aurai du supprimer mon message, j'ai oublié.

    Sinon j'ai toutefois une autre question, je reste avec mon appel de DLL.
    Si quelqu'un voit une erreur dans ce code je voudrai bien qu'il m'explique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    NEasyhandle = API("LibCurl","curl_easy_init")//démarre une session curl en mode simple et retourne un code session
    AppelDLL32("libcurl", "curl_easy_setopt", NEasyhandle, CURLOPT_URL, "ftp://192.168.5.1")//passe comme option l'adresse de connexion
    AppelDLL32("libcurl", "curl_easy_setopt" , NEasyhandle , CURLOPT_USERPWD,"usrFTP: pwdFTP")//Identifiants et mot de passe
    AppelDLL32("libcurl", "curl_easy_setopt", NEasyhandle, CURLOPT_UPLOAD, "true")//spécifie le type de transfert
    AppelDLL32("libcurl", "curl_easy_setopt", NEasyhandle, CURLOPT_READDATA, "C:\Documents and Settings\a.pean.I2EE\Bureau\essai.txt")//fichier à transmettre
    AppelDLL32("libcurl", "curl_easy_setopt", NEasyhandle, CURLOPT_INFILESIZE_LARGE, "0")
    AppelDLL32("libcurl", "curl_easy_perform",NEasyhandle)//transfert
    AppelDLL32("libcurl", "curl_easy_cleanup")//fermeture de la session curl
    En sachant que toutes mes constantes sont valuées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CURLOPT_URL = 10002
    CURLOPT_USERPWD = 10005
    CURLOPT_UPLOAD = 46
    CURLOPT_READDATA = 10009
    CURLOPT_INFILESIZE_LARGE = 30115
    mais à partir du perform il y'a une erreur, le code de retour est 7, ce qui si j'ai bien compris dénote un je cite:
    "failed to connect to ftp://blabla No such file or directory"
    Alors je pense à une petite erreur dans les paramètres je vais voir ça!

Discussions similaires

  1. [WD12] Problème d'utilisation de l'API cURL
    Par Whaouu dans le forum WinDev
    Réponses: 18
    Dernier message: 25/08/2014, 11h03
  2. API d'Acces VIDAL32.DLL
    Par rendou dans le forum Windows
    Réponses: 2
    Dernier message: 11/08/2008, 12h11
  3. Réponses: 1
    Dernier message: 11/01/2008, 17h54
  4. Fonctionnement des API et autres fichiers DLL ???
    Par Forthman dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 07/02/2006, 14h15
  5. LoadLibrary de libcurl.dll
    Par fidififouille dans le forum Windows
    Réponses: 3
    Dernier message: 02/11/2004, 11h30

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