FtpCommand



  • Servus,

    ich hab schon wieder ein Problem! Folgender Code funktioniert bei mir nicht:

    #include <windows.h>
    #include <wininet.h> 
    #include <stdio.h> 
    #include <stdlib.h>
    
    int WINAPI WinMain (HINSTANCE hThisInstance,
                        HINSTANCE hPrevInstance,
                        LPSTR lpszArgument,
                        int nFunsterStil)
    
    {
        HINTERNET       hIntSession = NULL;
        HINTERNET       hFtpSession = NULL;
        HINTERNET       hFtpCommand = NULL; 
    
        char buff[4096];
        DWORD dwBytesRead;
    
        FILE *f;
    
        hIntSession = InternetOpen ("FTP", INTERNET_OPEN_TYPE_PRECONFIG,
                                     NULL, NULL, 0) ;
    
        hFtpSession = InternetConnect (hIntSession, "ftp.tu-darmstadt.de",
                                        INTERNET_DEFAULT_FTP_PORT,
                                        "anonymous", "felix.maximus@web.de",
                                        INTERNET_SERVICE_FTP,                                    
                                        INTERNET_FLAG_PASSIVE,                                    
                                        0) ;   
    
        BOOL bRet = FtpCommand(hFtpSession, TRUE, FTP_TRANSFER_TYPE_ASCII,"LIST", 0, &hFtpCommand); 
    
        bRet = InternetReadFile(hFtpCommand,buff,4095,&dwBytesRead);
    
        buff[dwBytesRead] = 0;
    
        f=fopen("File.txt","w+");
        fprintf(f,"%s\n",buff);
        fclose(f);
    
        InternetCloseHandle (hFtpSession) ;
        InternetCloseHandle (hIntSession) ;
    
        return 0;   
    }
    

    Ich benutze Dev-C++ unter Windows XP. Bei diesem Projekt wurde außerdem noch libwininet.a eingebunden. Der Fehler, der bei mir erscheint lautet:

    too many arguments to function `FtpCommandA'
    

    Und wenn ich den letzten Parameter(hier &hFtpCommand) entferne, kommt der Fehler:

    [Linker error] undefined reference to `FtpCommandA@20'
    

    Was hab ich falsch gemacht? Muss noch irgendeine Datei eingebunden werden?

    Danke im Voraus,

    Felix



  • ich weis nicht was es mit libwininet.a auf sich hat bei Visual 2005 muss man noch WININET.LIB linken

    mfg noha



  • Ich glaube, dass libwininet.a der WININET.LIB entspricht, aber ich hab's versucht und es hat nicht funktioniert. Das Einbinden einer lib-Datei funktioniert doch so oder:

    #pragma comment(lib, "WININET.LIB")
    

    oder hab ich da einen Fehler gemacht?

    Felix



  • Ich würde spontan mal einfach auf einen Fehler in der libwininet.a tippen.
    Hast du die aktuellen w32api drauf?
    http://downloads.sourceforge.net/mingw/w32api-3.9.tar.gz?modtime=1174905073&big_mirror=1



  • War ne gute Idee, aber hat nicht funktioniert!
    Trotzdem danke.

    Felix



  • das mit dem linken ist so richtig 😉
    dann kann ich dir leider nicht weiterhelfen 😞



  • Wo muss sich die WININET.LIB befinden?



  • Im PlatformSDK bzw. im "Windows SDK" oder teilweise auch mitgeliefert bei Microsoft-Entwicklungsumgebungen. Allerdings wirst du damit bei mingw nicht viel anfangen können (d.h. man kann daraus wohl ne libwininet.a die mingw braucht mittels irgendnem tool erzeugen)


Anmelden zum Antworten