D
Habe mir eine kleine Funktion gebastelt mit der WinInet Library die einen Aufruf auf einer Seite tätigen soll. Klappt alles wunderbar nur jedes mal wenn ich die Funktion aufrufe, benötigt der Prozess knapp 0.004kb vom Arbeitsspeicher mehr. Das kann man im Ressourcenmonitor ganz einfach erkennen wenn man die Funktion in einer Endlosschleife laufen lässt in einem bestimmten Abstand.
Weiß jemand woran das liegen könnte? Hier mal meine Funktion:
DWORD GetData(std::string useragent, std::string site, std::string& rbuf)
{
HINTERNET hOpen = InternetOpen(useragent.c_str(), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
if(hOpen != NULL)
{
HINTERNET hOpenUrl = InternetOpenUrl(hOpen, site.c_str(), NULL, NULL, INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE, NULL);
if(hOpenUrl == NULL)
{
//InternetOpenUrl fehlgeschlagen
InternetCloseHandle(hOpen);
InternetCloseHandle(hOpenUrl);
return GetLastError();
}
else
{
//String leeren
rbuf.clear();
//Daten auslesen
char *response = new char[260];
DWORD iread = 0;
while(InternetReadFile(hOpenUrl, response, 260, &iread))
{
if(iread == 0)
break;
rbuf += response;
response[iread - 1] = 0;
}
//Erfolg
InternetCloseHandle(hOpenUrl);
InternetCloseHandle(hOpen);
delete[] response;
return 0;
}
}
//InternetOpen fehlgeschlagen
InternetCloseHandle(hOpen);
return GetLastError();
}