Salve ragazzi, ho scritto un breve codice, sappiate che
AURORAPATH è una directory locale
SERVERPATH è un url
codice:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){
AddAutoStartKey(FALSE);
if(!fopen(AURORAPATH, "r")){ // Se il client non esiste lo scarico
ftpDownload(AURORAPATH, SERVERPATH);
}
return 0;
e
codice:
#include <curl\curl.h>
#include <stdio.h>
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written;
written = fwrite(ptr, size, nmemb, stream); // il problema si presenta qui
return written;
}
bool ftpDownload(const char * __localPath, const char * _serverPath){ // i puntatori puntano valori casuali
CURL *curl;
FILE *fp;
CURLcode res;
curl = curl_easy_init();
if (curl) {
remove(__localPath);
fp = fopen(__localPath,"wb");
curl_easy_setopt(curl, CURLOPT_URL, _serverPath);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
}
return 0;
}
il punto è che una volta che richiamo la funzione ftpDownload(AURORAPATH, SERVERPATH) i valori AURORAPATH e SERVERPATH (const char * __localPath, const char * _serverPath) assumono valori casuali. Come è risolvibile il problema?