Bonjour,
Il semblerait que curl puisse être une solution à un autre thème de discussion que j'ai récemment ouvert.
Depuis hier je me bats pour essayer de le faire marcher, voilà ce que j'ai fait:
j'ai téléchargé ici:.WIN32 2000/XP 7.23.1 libcurl SSL de Günter Knauf 3,07 Mo
J'ai hésité car il y en a d'autres dont une sans SSL (je ne sais pas ce que veut dire SSL et par conséquent s'il me le faut ou pas).
N'ayant pas trouvé la méthode d'installation de cette library sur mon compilateur Borland C++ Builder version 5.5 sous Windows XP, qu'à cela ne tienne, j'ai fait autrement: j'ai copié les dll dans le même répertoire que mon .exe et j'ai chargé la dll principale et les adresses des points d'entrée des fonctions par programme et par ailleurs j'ai copié les .h dans mon répertoire, ce qui donne le bout de programme suivant qui après mise au point ne comporte aucune erreur de compilation, ni de linkage:
A l'exécution je passe sans erreur sur toutes les fonctions jusqu'à curl_perform, je sais que curl_perform se lance car mon antivirus me demande si j'autorise mon .exe à se connecter à Internet, ce que j'autorise et quelques instant après la fenêtre de mon programme disparaît de l'écran et mon .exe disparaît du gestionnaire, mon fichier Textcurl.html est créé mais vide. Ceci se passe exactement comme lorsqu'il y a un débordement de capacité (programme qui va écrire dans les lignes de code).
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #include <windows.h> #include "curl.h" // Déclarations HANDLE fichsor; HINSTANCE hinstdll=NULL; typedef CURL* (WINAPI* PFNTYP1)(); typedef INT (WINAPI* PFNTYP2)(CURL*, INT, VOID*); typedef INT (WINAPI* PFNTYP3)(CURL*); typedef INT (WINAPI* PFNTYP4)(CURL*); PFNTYP1 curl_init; PFNTYP2 curl_setopt; PFNTYP3 curl_perform; PFNTYP4 curl_cleanup; CURL *session; // Chargement de la library hinstdll = LoadLibrary("libcurl.dll"); // Récupération des adresses des points d'entrée des fonctions à utiliser curl_init = (PFNTYP1)GetProcAddress(hinstdll, "curl_easy_init"); curl_setopt = (PFNTYP2)GetProcAddress(hinstdll, "curl_easy_setopt"); curl_perform = (PFNTYP3)GetProcAddress(hinstdll, "curl_easy_perform"); curl_cleanup = (PFNTYP4)GetProcAddress(hinstdll, "curl_easy_cleanup"); // je vous fait grâce de l'analyse de tous les codes retour, mais il n'y a aucun rejet jusqu'ici // Allons-y session = curl_init(); curl_setopt(session, CURLOPT_URL, "http://web.developpez.com/"); fichsor=CreateFile("C:/Textcurl.html", GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, NULL); curl_setopt(session, CURLOPT_WRITEDATA, fichsor); curl_setopt(session, CURLOPT_WRITEFUNCTION, (VOID*)WriteFile); curl_perform(session); curl_cleanup(session); CloseHandle(fichsor);
Quelqu'un aurait-il SVP une idée de la faille dans les lignes de code ci-dessus ou la library téléchargée était-elle la bonne ?
Merci
Partager