Bonjour, bonjour

Je suis actuellement en train de réalisé un programme de teste sur une DLL, qui ma était fourni qui date de 2007.

Donc voila mon problème, j'utilise des fonction de CURL et notamment curl_global_init + curl_easy_init() + curl_easy_setopt et j'ai des petits soucis avec ces fonctions.
Et j'ai un peut du mal à comprendre à quoi elle servent malgré de nombreuse visite sur GOOGLE ^^ ( http://curl.haxx.se/libcurl/c/curl_easy_setopt.html ou http://curl.haxx.se/libcurl/c/http-post.html) plus certain forum mais je trouve pas une explication claire comme de l'au de roche ^^ et surtout une solution a mon problème.

Voila mon code sa sera plus parlant:

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
#include "curl\curl.h"
 
STATUS TEDETIS_E_sendEnvelop(char CHEMIN_FLUX[], char* m_tdt_url,  char* retour)
{
	struct curl_httppost *post = NULL;
	struct curl_httppost *last = NULL;
	char* ok = NULL;
	char* next_ok = NULL;
	char* url = NULL;
	CURL* handle;
	int i = 0;
	int taille = 0;
	int curl_code = 0;
 
	int** returnedEnv = 0;
	char** erreurlist = NULL;
 
 
	//Calcul de l'URL 
	url = (char*)malloc(strlen(m_tdt_url) + strlen(PAGE_TRANSACTION) + 1);
	sprintf(url, "%s%s", m_tdt_url, PAGE_TRANSACTION);
 
	curl_formadd(&post, &last, CURLFORM_COPYNAME, "enveloppe", CURLFORM_FILE, CHEMIN_FLUX, CURLFORM_FILENAME, "EACT--123456725--20150821-8.tar.gz", CURLFORM_END);
	curl_formadd(&post, &last, CURLFORM_COPYNAME, "api", CURLFORM_PTRCONTENTS, "1", CURLFORM_END);
 
	curl_global_init(CURL_GLOBAL_ALL);
 
	handle = curl_easy_init();
 
	if (handle)
	{
		cout << "TEDETIS_E_sendEnvelop 4\n" << flush;
 
		curl_easy_setopt(handle, CURLOPT_SSL_VERIFYPEER, 0);
		curl_easy_setopt(handle, CURLOPT_SSL_VERIFYHOST, 1);
		curl_easy_setopt(handle, CURLOPT_SSLCERT, "certificat");
		curl_easy_setopt(handle, CURLOPT_SSLKEY, "pkey");
		curl_easy_setopt(handle, CURLOPT_URL, url);
		curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, monwrite);
		curl_easy_setopt(handle, CURLOPT_WRITEDATA, &retour);
		curl_easy_setopt(handle, CURLOPT_HTTPPOST, post);
 
		curl_code = curl_easy_perform(handle);
		curl_easy_cleanup(handle);
	}
 
	curl_global_cleanup();
 
	taille = strlen(retour) + 1;
	ok = strtok(retour, "\n");
	ok = strtok_s(retour, "\n", &next_ok);
 
	if (!strcmp(ok, "OK")) 
	{
		taille = atoi(strtok(NULL, "\n"));
 
		*returnedEnv = (int*)malloc((taille + 1)*sizeof(int));
		(*returnedEnv)[0] = taille;
		for (i = 1; i <= taille; i++) (*returnedEnv)[i] = atoi(strtok(NULL, "\n"));
	}
	else 
	{
		*erreurlist = (char*)malloc(taille);
		strcpy(*erreurlist, strtok(NULL, "\0"));
		return (COM_ENVELOPPE_KO);
	}
 
	return(curl_code);
}
Et donc mon problème si sa en est bien un c'est que mon programme se compile très bien et se lance mais dès qu'il arrive curl_global_init(CURL_GLOBAL_ALL) le programme plante ou de fois il passe la ligne mais plante juste en dessous.

Donc je sais pas ce qu'il peut se passer et qu'est ce qui provoque cela....

Et surtout comment le réglé.

MERCI d'avance pour votre aide