Updates?

Der Code funktioniert einwandfrei, ich habe es gerade eben selbst getestet. Was klappt denn bei dir nicht?
 
Einfacher als das wird es wohl nicht mehr gehn.
Am Code ist auch überhaupt nichts mehr zu auszusetzen, du musst nur noch die Bibliothek dazuschreiben.

Was "geht nicht" bei der pragma-Methode? VS unterstützt das schon, wie lautet die Fehlermeldung?
 
kompilieren lässt es sich nun..
Kann man auch mehrere Dateien auf einmal so downloaden

Kann man evtl noch machen,dass die gedownloadeten daten dann in einen Ordner entzippt werden und danach die .zip ordner gelöscht werden?

Hier mal der momentane Code:

C:
#include <iostream>
#include <windows.h>
#include <urlmon.h>
using namespace std;

#pragma comment(lib,"URLMon.lib")

int main()
{
// Datei herunterladen
HRESULT result = URLDownloadToFile(
    NULL,
    TEXT("http://example.de/download.zip"), // URL zur Datei
	TEXT("C:\\Programme\\download.zip"), // Lokaler Name der Datei
    0,
    NULL);
if (result == S_OK)
{
  cout << "Download erfolgreich" << endl;
  system("PAUSE");
}
else
{
  cout << "Fehler beim Download" << endl;
  system("PAUSE");
}
}
 
Zuletzt bearbeitet:
kompilieren lässt es sich nun..
Kann man auch mehrere Dateien auf einmal so downloaden

Kann man evtl noch machen,dass die gedownloadeten daten dann in einen Ordner entzippt werden und danach die .zip ordner gelöscht werden?

Hier mal der momentane Code:

C:
#include <iostream>
#include <windows.h>
#include <urlmon.h>
using namespace std;

#pragma comment(lib,"URLMon.lib")

int main()
{
// Datei herunterladen
HRESULT result = URLDownloadToFile(
    NULL,
    TEXT("http://example.de/download.zip"), // URL zur Datei
	TEXT("C:\\Programme\\download.zip"), // Lokaler Name der Datei
    0,
    NULL);
if (result == S_OK)
{
  cout << "Download erfolgreich" << endl;
  system("PAUSE");
}
else
{
  cout << "Fehler beim Download" << endl;
  system("PAUSE");
}
}
 
Ich weiss nicht, ob es vielleicht bereits eine asynchrone Methode von URL Moniker gibt, aber so wie ichs in der Referenz gesehen habe nicht, daher könntest du zum Downloaded wohl mehrere Threads verwenden. Einzige Möglichkeit für eine Nichtfunktionieren dessen wäre, wenn die COM-Objekte nicht auf Multithreading ausgelegt sind.

Entzippen kannst du das auch. Eine Möglichkeit wäre die Routinen zu verwenden, die du in zlib bei den contributes findest (minizip) oder wenn du davon ausgehst, dass der Endbenutzer Winrar installiert hat, wo kannst du auch einen Aufruf an Winrar starten.
 
Wie müsste ich es dem programm beibringen,dass er mehrere nimmt habe es schon mit hintereinanderschreiben geht nicht,weils keine 7 argumente akzeptiert.

Hätte jemand evtl nen code zum entzippen?
 
Eben, eine Möglichkeit wäre es, dass du pro Datei, die du downloaden möchtest einen eigenen Thread startest. Da müsstest du dann halt einfach auch schauen, dass sich nichts überschneidet und plötzlich mehrere Threads auf die gleiche Datei zugreiffen.

Zum Entzippen steht ja schon oben, wie du es machen könntest.
 
Ich habe gerade den Code in den Dev-C++ eingefügt. Er meldet, dass er die <i>urlmon.h</i> nicht finden kann. Kann mir jemand helfen?
 
UrlMon ist Teil des Windows SDK, vermutlich hast du den Ordner deines SDKs nicht eingefügt (dann solltest du auch die windows.h nicht includieren können).
 
Also mit Dev-C++ habe ich bereits einige Windows-Applikationen erstellt. Bei <i>Windows.h</i> hat der keine Probleme.

EDIT: Habe es jetzt mit dem Borland C++ Builder versucht. Da musste ich noch die LIB-Datei linken und es hat funktioniert. Ein paar Sekunden später hat mein Viren-Scanner Alarm geschlagen. Ich musste den Scanner temporär ausschalten und noch dazu (habe Vista) musste ich das Programm mit Admin-Rechten ausführen.
 
Zuletzt bearbeitet:
Zurück