URLDownloadToFile



  • Hi, ich habe eine Konsolenanwendung geschrieben, die eine Datei aus dem Internet downloaden soll.
    Ich habe auch schon den richtigen Befel gefunden: URLDownloadToFile

    Das Problem dabei ist nur, dass der Compiler meine Syntax nicht so ganz zu verstehen scheint^^.

    Hier mal der betreffende Ausschnitt aus meinem bisherigen Code:

    #include<iostream> 
    #include<windows.h> 
    #include<conio.h>
    using namespace std; 
    
    int main() 
    {
    	URLDownloadToFile(NULL,(LPCWSTR) "www.google.de",(LPCWSTR) "C://test.txt", NULL, NULL);
    }
    

    Daraus ergeben sich 2 Probleme:

    1.ich musste bei den Parametern 2 und 3 sowieso schon casten, da sonst die Fehlermeldung "Konvertierung des Parameters 2 con const char in LPCWSTR nicht möglich" kommt. Vielleicht werden diese Paramtere durch den Cast also schonmal falsch konvertiert.

    2.Es kommt noch immer eine Fehlermeldung:

    fatal error LNK1120: 1 nicht aufgelöste externe Verweise.

    Da diese Syntax offensichtlich falsch ist, könnte mir beitte jemand ein richtiges Codebeispiel geben?

    Danke im Voraus,
    Andreas.



  • 1.ich musste bei den Parametern 2 und 3 sowieso schon casten, da sonst die Fehlermeldung "Konvertierung des Parameters 2 con const char in LPCWSTR nicht möglich" kommt. Vielleicht werden diese Paramtere durch den Cast also schonmal falsch konvertiert.

    Der cast wird nicht benötigt, wenn der korrekte Typ übergeben wird:

    #include <tchar.h>
    // ...
    URLDownloadToFile(NULL,_T("www.google.de"),_T("C:\\test.txt"), NULL, NULL);
    

    (Für _T(""): http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/8ce6ddef-3f1a-4033-a28b-54af91766e9f)

    2.Es kommt noch immer eine Fehlermeldung:

    fatal error LNK1120: 1 nicht aufgelöste externe Verweise.

    Du musst die Library noch dazulinken, in welchem die URLDownloadToFile(..) Funktion implementiert ist, z.B. mit folgender Zeile:

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

    ➡ Ausserdem nehme ich an dass der Initialisierungs/Uninitialisierungs Code für das COM Environment benötigt wird (CoInitializeEx(..) / CoUninitialize(..)).

    Zuästzlich bist Du noch im falschen Forum. Korrekt wäre wohl eher WinAPI oder MFC, auch wenn beide nicht ganz passen. C++/CLI passt jedefalls gar nicht.

    Simon

    Edit: Und hier noch die Doku zur Funktion. Da steht ALLES was Du wissen musst.
    http://msdn.microsoft.com/en-us/library/ms775123.aspx


Anmelden zum Antworten