C++ Buffer

amine69500 Messages postés 422 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je souhaiterais savoir comment je pourrais modifier mon code sous c++ afin que celui ci memorise mon resultat dans un buffer et non pas dans un chunk.memory

le but aprés, est de recuperer le resultat de la memoire (buffer) sous excel

merci de votre aide

cordialement

mon code


int totoConnector::getPro(LPCSTR key, LPCSTR* result)
{
CURLcode res;
struct MemoryStruct chunk;
chunk.memory = (char*)malloc(1); /* will be grown as needed by the realloc above */
chunk.size = 0; /* no data at this point */
int error = 1;
string credentialS = this->userName + ":" + this->password;
char *credential = new char[credentialS.size()+1] ;
strcpy(credential, credentialS.c_str());

string urlS = this->baseUrl + this->projectUrl + "/" + convertLPCSTRToStr(key) ;
char *url = new char[urlS.size()+1] ;
strcpy(url, urlS.c_str());


if (curl)
{


curl_easy_setopt(curl, CURLOPT_URL,url);
curl_easy_setopt(curl, CURLOPT_HTTPGET,1);
curl_easy_setopt(curl, CURLOPT_USERPWD, credential);
/* send all data to this function */
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
/* we pass our 'chunk' struct to the callback function */
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);
res = curl_easy_perform(curl);

}


printf(chunk.memory);
if(chunk.memory)
free(chunk.memory);
return error;

}


merci de votre aide
A voir également:

2 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
tu en codes en C++ comme en C. C'est moche.
Je ne comprend rien à ta question. Pour moi buffer est une zone tampon, donc plutôt temporaire de mémoire, qui souvent sert à l'accumulation. C'est un concept, pas quelque chose de concret. Essai d'être plus clair dans ce que tu veux.
0
amine69500 Messages postés 422 Date d'inscription   Statut Membre Dernière intervention   12
 
Bonsoir et merci de votre aide

voila mon probleme:

j'ai créer une dll sous c++ avec une fonction (une variable LPSTR, et un pointeur sur result)

ensuite j'ai declaré cette dll sous vba, pour l'utilisé avec vba et avoir le resultat sous excel

donc pour l'instant comme vous pouvez voir sur mon code (message1) le resultat de ma fonction est stocker sous chunk.memory, et mon but est de tranformer le stockage dans chunk.memory en stockage dans un buffer

comme ca ensuite je pourrais recuperer le resultat stocker dans le buffer et l'afficher sur excel.

voila j'espere que j'etais claire, sinon n'hesite pas

merci dce votre aide

cordialement
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
donc pour l'instant comme vous pouvez voir sur mon code (message1) le resultat de ma fonction est stocker sous chunk.memory
Euh, moi ce que je vois surtout c'est que le résultat de ta fonction est "error" (int) et non chunk.memory;
Ensuite ton code est vraiment moche. On mélange pas le C et le C++. Pourquoi diable mélanger s'embêter avec des tableaux de char en C++ là où un simple string suffit ?

printf(chunk.memory);
Plutôt : printf("%s", chunk.memory);

Sinon pourquoi ne pas faire ton buffer et copier ton chunk.memory dedans ?
Je ne comprends pas tout ce que tu souhaites faire...
0
amine69500 Messages postés 422 Date d'inscription   Statut Membre Dernière intervention   12
 
bonsoir et merci de votre aide ,

c vrai l'idee de créer un buffer et mettre mon chunk memory dedans me parait bien mais le probleme est comment je pourrais créer mon buffer pour mettre mon chunk memory dedans
si vous pouvez me donnée un exemple ca m'arrangerais

et merci encore de votre aide

cordialement
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Beh vu que tu mélanges string et char*, cela dépend du type que tu souhaites donner au buffer...
0
amine69500 Messages postés 422 Date d'inscription   Statut Membre Dernière intervention   12
 
je souhaite lui donné du string, par ce que ensuite je vais le recuperer avec vba
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Rassure-moi, tu ne comptes pas récupérer le contenu de ta variable string C++ en vba comme si de rien n'était ? Cela n'est pas si simple. Le string C++ et le string vba n'ont en commun que le nom.
Dans ton code C++, tu travailles en Ansi ou Unicode pour tes chaînes ? Ansi non ?
Ne peux-tu pas utiliser le type BSTR (au lieu de string) ? Ca serait plus simple.
0