Updates?

Hallo,

sorry, ich hab mich auf die Schnelle bei den Parametertypen verlesen. Meine Variante funktioniert nur, wenn man mit Unicode-Unterstützung kompiliert. Mit dem TEXT-Makro kann man dieses Manko ausbügeln:

C:
HRESULT result = URLDownloadToFile(
    NULL,
    TEXT("http://example.com/Update.exe"), // URL zur Datei
    TEXT("Update.exe"), // Lokaler Name der Datei
    0,
    NULL);

Grüße,
Matthias
 
Code
C:
#include <iostream>
#include <windows.h>
#include <urlmon.h>

int main()
{
// Datei herunterladen
HRESULT result = URLDownloadToFile(
    NULL,
    L"http://example.com/Update.exe", // URL zur Datei
    L"Update.exe", // Lokaler Name der Datei
    0,
    NULL);
if (result == S_OK)
{
  system("explorer /*Pfad*/ C:\\\Dokumente und Einstellungen\\\"");
}
else
{
  cout << "Fehler beim Download" << endl;
}
}

Fehler
Code:
1>------ Erstellen gestartet: Projekt: download, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>c:\dokumente und einstellungen\\eigene dateien\visual studio 2008\projects\download\download\main.cpp(13) : error C2664: 'URLDownloadToFileA': Konvertierung des Parameters 2 von 'const wchar_t [30]' in 'LPCSTR' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\dokumente und einstellungen\\eigene dateien\visual studio 2008\projects\download\download\main.cpp(16) : warning C4129: 'D': Nicht erkannte Folge von Escapesequenz
1>c:\dokumente und einstellungen\\eigene dateien\visual studio 2008\projects\download\download\main.cpp(20) : error C2065: 'cout': nichtdeklarierter Bezeichner
1>c:\dokumente und einstellungen\\eigene dateien\visual studio 2008\projects\download\download\main.cpp(20) : error C2065: 'endl': nichtdeklarierter Bezeichner
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\\Eigene Dateien\Visual Studio 2008\Projects\download\download\Debug\BuildLog.htm" gespeichert.
1>download - 3 Fehler, 1 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
 
Zeile 16: \\ reicht jeweils, statt \\\
Cout-Problem: Namespace noch einbinden

Und das mit dem TEXT wurde ja schon gesagt
 
Jetzt is es nur noch 1 Problem:

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

int main()
{
// Datei herunterladen
HRESULT result = URLDownloadToFile(
    NULL,
    TEXT("http://arcor.com/Terra23/DeckButler/DeckButler.zip"), // URL zur Datei
    TEXT("DeckButler.zip"), // Lokaler Name der Datei
    0,
    NULL);
if (result == S_OK)
{
  system("explorer C:\\Dokumente und Einstellungen\\");
}
else
{
  cout << "Fehler beim Download" << endl;
}
}

Code:
1>------ Erstellen gestartet: Projekt: download, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>main.cpp
1>Verknüpfen...
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_URLDownloadToFileA@20" in Funktion "_main".
1>C:\Dokumente und Einstellungen\?\Eigene Dateien\Visual Studio 2008\Projects\download\Debug\download.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\?\Eigene Dateien\Visual Studio 2008\Projects\download\download\Debug\BuildLog.htm" gespeichert.
1>download - 2 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
 
Du musst einfach diese Bibliothek importieren. Entweder über die Projekteinstellungen oder (falls vom Compiler unterstütz, da ich nicht ischer bin, ob es ein Teil des Standards ist) über #pragma comment(lib, "URLMon.lib")
 
Zurück