ws2_32.lib ?



  • Hi, ich wollte endlich einen Mail Code erfolgreich Kompilieren auch wenns es nur ein Test Code ist, Diesen hab ich von http://www.c-plusplus.net/forum/viewtopic-var-t-is-134700.html :

    #include <winsock2.h>
    #include <iostream.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <fstream.h>
    
    void ReadLine(SOCKET, char *, int);
    
    void ReadLine(SOCKET s, char *str, int len)
    {
    fd_set fds;
    FD_ZERO(&fds);
    FD_SET(s, &fds);
    for (int i = 0; i < len; i++)
    {
    select(0, &fds, 0, 0, 0);
    DWORD dwBytes;
    ioctlsocket(s, FIONREAD, &dwBytes);
    for (unsigned j = 0; j < dwBytes; j++) {
    char b;
    recv(s, &b, 1, 0);
    str[i] = b;
    if (b == 10) {
    str[i-1] = 0;
    break;
    }
    }
    }
    }
    
    int main(void)
    {
    char hostname[125];
    char b[1000];
    int a;
    
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2,0), &wsaData);
    
    SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    
    printf("Adresse des Mailservers eingeben:");
    gets(hostname);
    
    hostent *he = gethostbyname(hostname);
    
    sockaddr_in sa;
    sa.sin_family = AF_INET;
    CopyMemory(&sa.sin_addr, he->h_addr_list[0], sizeof sa.sin_addr);
    sa.sin_port = htons(25);
    
    cout << "Verbinden mit Host... " << flush;
    a = connect(s, (sockaddr *)&sa, sizeof sa);
    
    if(a == SOCKET_ERROR)
    cout << "Fehler.\n";
    else
    cout << "OK\n";
    
    char str[256];
    ReadLine(s, str, 256);
    cout << "\n\nEinkommende Nachricht vom Host:\n" << str << endl;
    
    strcpy(b, "HELO comp\r\n");
    send(s, b, strlen(b), 0);
    ReadLine(s, str, 256);
    cout << "Einkommende Nachricht von Host:\n" << str << endl;
    
    strcpy(b,"MAIL FROM: <döner@bluewin.ch>\r\n");
    send(s, b, strlen(b),0);
    ReadLine(s, str, 256);
    
    cout << "Einkommende Nachricht vom Host:\n" << str << endl;
    
    strcpy(b,"RCPT TO: <irgendjamand@irgendwas.com>\r\n");
    send(s, b, strlen(b),0);
    ReadLine(s, str, 256);
    cout << "Einkommende Nachricht vom Host:\n" << str << endl;
    
    strcpy(b,"DATA\r\n");
    send(s, b, strlen(b),0);
    ReadLine(s, str, 256);
    cout << "Einkommende Nachricht vom Host:\n" << str << endl;
    
    strcpy(b ,"From: X-men\r\n");
    send(s, b, strlen(b),0);
    strcpy(b ,"To: irgendjemand@irgendwas.com\r\n");
    send(s, b, strlen(b),0);
    
    strcpy(b ,"Subject: hallo\r\n\r\n");
    send(s, b, strlen(b),0);
    
    strcpy(b,"döner muss kaufen\r\n");
    send(s, b, strlen(b),0);
    
    strcpy(b,"\r\n.\r\n");
    send(s, b, strlen(b),0);
    
    ReadLine(s, str, 256);
    cout << "Einkommende Servernachricht:\n" << str << endl;
    
    strcpy(b,"QUIT\r\n");
    send(s , b, strlen(b),0);
    ReadLine(s, str, 256);
    cout << "Einkommende Servernachricht:\n" << str << endl;
    
    MessageBox(0, "Fertig", "", MB_OK);
    return 0;
    }
    

    Fehlermeldung des Dev : 2 D:\Toolz\Dev-Cpp\include\c++\3.4.2\backward\iostream.h:31, from C:\Documents and Settings\psi\Desktop\Unbenannt1.cpp In file included from D:/Toolz/Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/backward/iostream.h:31, from C:\Documents and Settings\psi\Desktop\Unbenannt1.cpp

    Fehlt ja auch die ws2_32.lib.
    Hab sie schon wie besessen gesucht, aber nicht gefunden.
    Ich währe sehr dankbar wenn mir jemand einen Link geben könnte, wo ich sie runterladen kann!

    mfg
    fridolinswelt



  • Beim mingw heißt sie wohl libws2_32.a



  • Erstmal: Nimm lieber die Header <iostream>, <cstdio>, <cstdlib> und <fstream> (und den Namensraum "std::").

    Zweitens: Wie lautet denn die KOMPLETTE Fehlermeldung? (dieses Fragment dort ist garantiert nicht komplett)

    Drittens: Diese Mischung aus C und C++ sieht ja grausam aus 😉



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ups, ja danke.

    Fehlermeldung :

    C:\Documents and Settings\psi\Desktop\Unbenannt1.cpp In function `int main()':

    55 C:\Documents and Settings\psi\Desktop\Unbenannt1.cpp `cout' undeclared (first use this function)

    (Each undeclared identifier is reported only once for each function it appears in.)

    55 C:\Documents and Settings\psi\Desktop\Unbenannt1.cpp `flush' undeclared (first use this function)

    65 C:\Documents and Settings\psi\Desktop\Unbenannt1.cpp `endl' undeclared (first use this function)

    Bin leider C++ Neuling, hab etwas über Namensräume gelesen aber daraus werde ich auch nicht wirklich schlau.
    Kannst du mir sagen wo er in dem Code ist ?



  • Dein gesamter Code ist nicht legaler ISO-C++-Code! Wo hast du denn den her? Weil das geht schon in der zweiten include-Zeile falsch los. iostream.h gibt es seit 1998 offiziell nicht mehr im ISO-C++-Standard. Eigentlich müsste schon der Compiler diesen Header nicht kennen und dir beim Inkludieren schon eine Fehlermeldung zeigen. Anscheinend ist auch der Compiler sehr veraltet?

    Einen Namespace benutzt man so (Beispiele):

    std::cout << "Hallo" << std::flush;
    
    // oder so:
    
    using namespace std;
    cout << "hallo" << flush;
    

    Am besten mal ein aktuelles (!) Lehrbuch oder Tutorial lesen.



  • Schade das der Code nicht zu gebrauchen ist, habe schon lange nach einem gesucht der Mails verschickt und den ich im XP mit Dev Kompilieren kann um damit herum zu experimentieren. Von keylogger bis hin zu Telnet Applikationen.
    Gibt es für sowas nicht ein Tut ?
    Namespace bringt mich hir wie mir scheint nicht wirklich weiter.





  • Vielen dank, aber mail-client.c - Fehlermeldung :

    C:\DOCUME1\psi\LOCALS1\Temp\ccuObaaa.o(.text+0xc6) In function main': [Linker error] undefined reference toparse_network_args'
    [Linker error] undefined reference to tcp\_active\_open' [Linker error] undefined reference todo_mail_init'
    [Linker error] undefined reference to do\_mail\_from' [Linker error] undefined reference todo_mail_to'
    [Linker error] undefined reference to do\_mail\_data_fp' [Linker error] undefined reference todo_mail_quit'
    C:\DOCUME1\psi\LOCALS1\Temp\ccuObaaa.o(.text+0xc6) ld returned 1 exit status


Anmelden zum Antworten