Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » kleines FTP Programm

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.12.2008, 10:44 Uhr
BoFiaZ



Hallo,

ich möchte ein kleines Programm schreiben was mir FTP Dateien hochlädt. Dazu habe ich folgenden Code geschrieben:


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

void upload(void);


void upload() {
    HINTERNET hOpen, hConnection;
  
    hOpen = InternetOpen("FTP Upload", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
  
    hConnection = InternetConnect(hOpen, "www.example.de", INTERNET_DEFAULT_FTP_PORT, "example", "example", INTERNET_SERVICE_FTP, 0, 0);
                                    
    FtpPutFile(hConnection, "C:\test.txt", "example/example/cpp/beispiel1.txt", FTP_TRANSFER_TYPE_ASCII, 0);
                
    InternetCloseHandle(hConnection);
    InternetCloseHandle(hOpen);
}


int main() {
    upload();
    return 0;
}



Und nun kommt folgende Meldung mit der ich nichts anfangen kann:


Zitat:
------ Erstellen gestartet: Projekt: FTP, Konfiguration: Debug Win32 ------
Verknüpfen...
hello-world.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__InternetCloseHandle@4" in Funktion ""void __cdecl upload(void)" (?upload@@YAXXZ)".
hello-world.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__FtpPutFileA@20" in Funktion ""void __cdecl upload(void)" (?upload@@YAXXZ)".
hello-world.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__InternetConnectA@32" in Funktion ""void __cdecl upload(void)" (?upload@@YAXXZ)".
hello-world.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__InternetOpenA@20" in Funktion ""void __cdecl upload(void)" (?upload@@YAXXZ)".
CDokumente und Einstellungen\bweichel\Eigene Dateien\Visual Studio 2008\Projects\FTP\Debug\FTP.exe : fatal error LNK1120: 4 nicht aufgelöste externe Verweise.
Das Buildprotokoll wurde unter "file://cDokumente und Einstellungen\example\Eigene Dateien\Visual Studio 2008\Projects\FTP\FTP\Debug\BuildLog.htm" gespeichert.
FTP - 5 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Kann mir jemand sagen was ich da falsch mache? Bzw. was ich ändern muss?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.12.2008, 11:01 Uhr
0xdeadbeef
Gott
(Operator)


Du musst die wininet.lib dazulinken.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.12.2008, 11:13 Uhr
BoFiaZ



Sorry, aber wie linke ich die denn dazu?
Verwende Visual C++ 2008 Express?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.12.2008, 15:56 Uhr
0xdeadbeef
Gott
(Operator)


In den Projekteinstellungen gibt es eine Sektion "Linker" mit einer Untersektion "Eingabe," in der man dazuzulinkende Bibliotheken eintragen kann. Da eintragen.

Das steht aber bestimmt auch in der Dokumentation.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.12.2008, 17:53 Uhr
BoFiaZ



Super danke... funktioniert... bin noch ein Anfänger...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
04.12.2008, 18:36 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


verschieb das mal nach WinAPI
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.12.2008, 14:46 Uhr
BoFiaZ



Danke nochmal für die Antwort/ Lösung. Könnte ihr mir vielleicht noch kurz erklären wann ich eine lib zusätzlich einbinden muss und wann nicht? Es scheint ja nicht bei allen Headerdateien so, das man zustäzlich die .lib Datei einbinden muss...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.12.2008, 15:17 Uhr
0xdeadbeef
Gott
(Operator)


Doch, im Grunde schon. Jedenfalls bei den meisten - Ausnahmen stellen z.B. Header dar, in denen lediglich templates definiert werden. Allerdings können zur selben Bibliothek verschiedene Header gehören, und üblicherweise bindet ein Compiler die grundsätzlichsten Bibliotheken (C- und ggf. C++-Laufzeitbibliothek) automatisch ein.

Welche Header zu welcher Bibliothek gehören, findest du in der Dokumentation der Bibliothek. Für Windows-System-Header bedeutet das die MSDN, und für andere...naja, um an die Header zu kommen, musst du dir erst die Bibliothek holen, von daher solltest du das dann eh wissen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: