HINTERNET frage
-
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(); }