JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=c4a539a3a445b04fb9a0595ce3d04c6aMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

FTP Probleme mit Win32-API - FtpCommand

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
alexm
Mini JLI'ler



Anmeldedatum: 20.11.2005
Beiträge: 15
Wohnort: Wien
Medaillen: Keine

BeitragVerfasst am: 31.10.2008, 17:49    Titel: FTP Probleme mit Win32-API - FtpCommand Antworten mit Zitat

hallo allerseits!

irgendwie hab ich ein problem mit dem FtpCommand.

ich verwende es wie folgt:

CPP:
    HINTERNET hFtpCommand = NULL;

    BOOL resFtpCommandW = FtpCommandW(
        CFTP::_connectionData.hInternet,    //HINTERNET hConnect,
        TRUE,                                //BOOL fExpectResponse,
        FTP_TRANSFER_TYPE_BINARY,            //DWORD dwFlags, FTP_TRANSFER_TYPE_ASCII (Type A) | FTP_TRANSFER_TYPE_BINARY (Type I)
        L"LIST",                            //LPCTSTR lpszCommand,
        NULL,                                //DWORD_PTR dwContext,
        &hFtpCommand                        //HINTERNET* phFtpCommand
        );

// ---- danach ruf ich folgendes auf:

    if ( !resFtpCommandW )
    {
        CFTP::exit( L"ERROR: Sending Ftp Command LIST failed!"  );
    }

    CFTP::Print( L"Ftp response:\n" + CFTP::getLastFTP_Response()  );


meine Print funktion leitet mir lediglich die ausgabe an die console weiter.

die funktion CFTP::getLastFTP_Response() sieht so aus

CPP:
const wstring CFTP::getLastFTP_Response()
{
    DWORD le =  GetLastError();
    WCHAR lpszBuffer[1024];
    DWORD lpdwBufferLength = 1024;

    ZeroMemory(lpszBuffer,sizeof(lpszBuffer));
    InternetGetLastResponseInfoW( &le , lpszBuffer, &lpdwBufferLength);

    std::wostringstream ss;
    ss << L"ErrorId = " << le << L" Error Message: " << lpszBuffer;

    return ss.str();
}


meine probleme bei dem ganzen:

A) Was bitte ist dieser parameter DWORD_PTR dwContext beim FtpCommand - finde nirgendwo ein beispiel, in dem dieser parameter verwendet oder erklärt wird.

B) ich bekomme überhaupt keine rückmeldung, ob der server nun den LIST befehl ausgeführt hat. sollte ich das nicht über InternetGetLastResponseInfoW() bekommen? mein text der ausgegeben wird besagt nur ErrorId = 0 Error Message: <<LEER>>

C) rufe ich hier nirgendwo
InternetCloseHandle( CFTP::_connectionData.hFtpConnect );
InternetCloseHandle( CFTP::_connectionData.hInternet );
( meine InternetOpen und InternetConnect - handles )
auf - dennoch werden nach der ausführung von FtpCommandW offenbar beide geschlossen - erst dann wird der responsetext ausgegeben. verwende hier aber keinerlei threads. was ist da los !?

wäre für jeden weiterführenden tipp sehr dankbar !

vielleicht hat ja einer von euch schon seine erfahrungen mit dem zeugs gesammelt.

lg

Rolling Eyes
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 01.11.2008, 21:50    Titel: Re: FTP Probleme mit Win32-API - FtpCommand Antworten mit Zitat

alexm hat Folgendes geschrieben:
...
A) Was bitte ist dieser parameter DWORD_PTR dwContext beim FtpCommand - finde nirgendwo ein beispiel, in dem dieser parameter verwendet oder erklärt wird.

DWORD_PTR ist definiert als ULONG_PTR und das ist eine (64-bit große) unsigned long Variable, also ein vorzeichenloser Integer mit 64-bit Größe. Das stammt noch aus C-Zeiten. der Parameter dwContext von FtpCommand() ist
Zitat:
A pointer to a variable that contains an application-defined value used to identify the application context in callback operations.
Das hat was mit der Funktion InternetStatusCallback() zu tun, und zwar kannst du eine Callback (Funktion von dir, die Windows hin und wieder aufruft) definieren. Diese hat einen Context der eine bestimmte Nummer hat. Mit dwContext kannst du dich nun auf diesen Kontext beziehen, lies dir einfach [url=http://msdn.microsoft.com/en-us/library/aa383976(VS.85).aspx]diesen Link[/url] durch, da steht das ziemlich genau.

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum