tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
1749
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Hookah Hookah ist offline Mitglied Gold
    Registriert seit
    Feb 2007
    Beiträge
    117
    Edit : Das Problem ist beseitigt ,habe nur den Titel geändert
    Neues Problem ist im dritten Post zu lesen - Danke

    ------

    Ich bastel mir grad ein Progrämmchen zusammen das aus einer Datenbank was ausliest ( einen Dateinamen) und diese Datei soll dann zum Beispiel auf uploaded.to hochgeladen werden (per ftp)

    Nun hab ich so einiges gefunden zum Thema FTP Upload mit WinInet
    Und bevor ich weiter versuche muss ich ersmal InternetConnect
    zu stande bekommen

    Folgende Zeile

    Code :
    1
    
    hFtp=InternetConnect(hInternet,"ftp.uploaded.to",21,"bone","**PAsswort***",INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,0);

    bringt mir den Fehler

    Code :
    1
    2
    
     error C2664: 'InternetConnectW': Konvertierung des Parameters 2 von 'const char [16]' in 'LPCWSTR' 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.

    Ist es denn nicht richtig als zweiten Parameter die URL anzugeben?
    Die vom FTP von Uploaded.to ist ftp.uploaded.to

    MIt einem FTP Client kann ich auch drauf zugreifen

    Bin echt totaler Anfänger was C++ betrifft und les schon seit Stunden was dazu.

    Was hab ich falsch gemacht?
    Wie hat es richtig auszusehen?
    Geändert von Hookah (30.09.09 um 15:55 Uhr)
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Entweder, du schaltest im Projekt die Verwendung des UNICODE Zeichensatzes ab, oder du verwendest die generischen Funktionen bzw. Makros aus tchar.h:

    Code c:
    1
    2
    3
    
    hFtp=InternetConnect(hInternet,
      TEXT("ftp.uploaded.to"), 21, TEXT("bone"), TEXT("**PAsswort***"),
      INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,0);
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Hookah Hookah ist offline Mitglied Gold
    Registriert seit
    Feb 2007
    Beiträge
    117
    Super , das hat geklappt

    Jetzt gibts keinen Fehler mehr beim kompilieren


    Vielleicht kann mir ja einer noch dabei helfen

    Den Pfad zu einer Datei möcht ich aus einer DB auslesen ( das klappt schon)

    und dann möcht ich mit FtpPutFile()
    die Datei hochladen

    Ersmal geht es mir ums hochladen

    Dazu hab ich dann mal eingegeben
    Code :
    1
    
    FtpPutFile(hInternet, TEXT("C:\Release.rar"),TEXT("Release.rar"), FTP_TRANSFER_TYPE_BINARY, 0);

    Der zweite Parameter ist doch der Pfad zur Datei auf dem Rechner oder?
    Hab ich dann mal den Pfad eingegeben wie oben zu sehen

    Ohne TEXT ("") gibts wieder einen Fehler wie oben
    Der dritte Parameter ist doch der Name der Datei nach dem Upload oder ist das nicht richtig?

    Auf jedenfall funktioniert es nicht

    Hier mal der Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    #include "stdafx.h"
     
    #include <iostream>
    #include <sstream>
    #include <memory>
    #include <string>
    #include <stdexcept>
     
     
    #include <windows.h>
    #include <wininet.h>
    #include <process.h>
    #include<conio.h>
    #include<wininet.h>
    #pragma comment(lib, "Wininet.lib")
    #pragma comment(lib, "ws2_32")
     
    using namespace std;
    using namespace sql;
     
     
        HINTERNET hInternet,hFtp,hFtpRead,hFtpOpen;
        WIN32_FIND_DATA wfd={0};
        TCHAR Buffer[100]={0};
     
     
     
     
    int main()
    {
     
        hInternet=InternetOpen(L"ftp-client",INTERNET_OPEN_TYPE_PRECONFIG,0,0,INTERNET_FLAG_ASYNC);
        hFtp=InternetConnect(hInternet, TEXT("ftp.uploaded.to"),21,TEXT("bone"),TEXT("**Passwort**"),INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,0);
        if(!hFtp)
        {
     
        cout << "Verbindung nicht hergestellt";
     
        }
     
     
        FtpPutFile(hInternet, TEXT("C:\Release.rar"),TEXT("Release.rar"), FTP_TRANSFER_TYPE_BINARY, 0);
     
            cin.get();
        return 0;
     
      }

    Was mir aber noch aufgefallen ist ist das wenn ich ein falsches Passwort eingebe
    trotz des if(!hFtp) kein "Verbindung nicht hergestellt" ausgegeben bekomme

    Also weiss ich nicht ob es am FtpPutFile liegt oder einfach daran das keine Verbindung zustande kommt

    Wie kann ich das denn rausfinden?
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 13.05.09, 23:40
  2. Antworten: 0
    Letzter Beitrag: 08.04.07, 11:40
  3. char[] in LPCWSTR konvertieren
    Von PeterBücherwurm im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 24.09.06, 17:12
  4. Int in const char*
    Von Sircoly im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 15.07.06, 19:40
  5. Konvertierung von String nach const char
    Von Trissy im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 14.01.05, 18:29