Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Probleme mit Winsock

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
02.09.2004, 14:25 Uhr
Chaos



Hallo
Ich hab vor nem Zeitchen ein paar Zeilen Code gefunden welche es mir erlauben sollten ICQ-Messages zu verschicken.
Ich hab mir jetzt wiedermal Microsoft Developer Studio 5.0 ausgegraben. Im Code steht es solle zu Visual C++ compatibel sein. Leider bekomm ich beim Linken ein paar Fehler.
Kann mir da wer weiterhelfen.
thx schonmal


C++:
//                                                                   //
// PagerICQ - Send Messages to ICQ Pager                             //
//                                                                   //
//    Visual C++, Borland C++ and C++ Builder Compatible Source Code //
//    Windows 9x, NT, 2000 and XPCompatible                          //
//                                                                   //
// Function:                                                         //
//                                                                   //
//    ICQPager( cUIN, cMessage )                                     //
//                                                                   //
//       Parameters:                                                 //
//                                                                   //
//          cUIN     = ICQ UIN Number                                //
//          cMessage = Message To Send                               //
//                                                                   //
///////////////////////////////////////////////////////////////////////

#include <winsock.h>
#include <iostream>

using namespace std;



bool ICQPager( char *cUIN, char *cMessage )
{
   // Variables
   struct sockaddr_in ICQServer;

   WORD wVersionRequested;
   WSADATA wsaData;

   char      cEOL[] = { 13, 10, 0 };
   char cMsg[ 512 ] = "";

   bool lOK = false;

   int nLoop;

   // Remove Invalid Characters
   // and... Change spaces to "+"
   for ( nLoop = 0; nLoop < strlen( cMessage ); nLoop ++ )
   {
        if ( cMessage[ nLoop ] <  33 ||
             cMessage[ nLoop ] > 126 ||
             cMessage[ nLoop ] == '&' )
        {
             cMessage[ nLoop ] = '+';
        }
   }

   // Start Winsock
   wVersionRequested = MAKEWORD( 1, 0 );

   if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
   {
       // Make Socket
       ICQServer.sin_family      = AF_INET;
       ICQServer.sin_port        = htons( 80 );
       ICQServer.sin_addr.s_addr = inet_addr( "205.188.147.55" ); //wwp.icq.com

       int ICQSock = socket( AF_INET, SOCK_STREAM, 0 );

       // Connect Server
       if ( connect( ICQSock, (struct sockaddr *) &ICQServer, sizeof( ICQServer ) ) == 0 )
       {
           // Make Message
           strcpy( cMsg, "GET /scripts/WWPMsg.dll?from=anonymous&fromemail=mail@test.com&subject=pager" );
           strcat( cMsg, "&body=" );
           strcat( cMsg, cMessage );
           strcat( cMsg, "&to=" );
           strcat( cMsg, cUIN );
           strcat( cMsg, " HTTP/1.0" );
           strcat( cMsg, cEOL );
           strcat( cMsg, cEOL );
           strcat( cMsg, cEOL );

           // Send Message
           lOK = ( send( ICQSock, cMsg, strlen( cMsg ), 0 ) >= 0 );

           // Reveive
           if ( lOK )
               recv( ICQSock, cMsg, 512, 0 );

           // Close Socket
           closesocket( ICQSock );
       }

       // Close Winsock
       WSACleanup();
   }

   // Return
   return ( lOK );
}


////////////////////////
//                    //
// Example of the use //
//                    //
////////////////////////

void Example()
{
    char *cMessage = "Message test send to ICQ Pager";

    if ( ICQPager( "8790699", cMessage ) )
        cout << "Message gesendet" << endl;
    else
        cout << "Message wurde nicht gesendet! ERROR " << endl;
}

void main (void)
{
    Example();
}



Linkermeldungen:

--------------------Konfiguration: test - Win32 Debug--------------------
Kompilierung läuft...
icqtest.cpp
Linker-Vorgang läuft...
icqtest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _WSACleanup@0
icqtest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _closesocket@4
icqtest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _recv@16
icqtest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _send@16
icqtest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _connect@12
icqtest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _socket@12
icqtest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _inet_addr@4
icqtest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _htons@4
icqtest.obj : error LNK2001: Nichtaufgeloestes externes Symbol _WSAStartup@8
LIBCD.lib(wincrt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _WinMain@16
Debug/test.exe : fatal error LNK1120: 10 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

test.exe - 11 Fehler, 0 Warnung(en)

Dieser Post wurde am 02.09.2004 um 14:30 Uhr von Chaos editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.09.2004, 14:41 Uhr
virtual
Sexiest Bit alive
(Operator)


Link die Winsock2 DLL dazu.

--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.09.2004, 14:43 Uhr
virtual
Sexiest Bit alive
(Operator)


PS: Trau Dich, auch im Forum mal zu lesen, was andere geschrieben haben:
www.fun-soft.de/showtopic.php?threadid=8677&time=1094035501
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.09.2004, 15:25 Uhr
Tommix



Hallo,

Zitat:

Nichtaufgeloestes externes Symbol _WinMain


deutet darauf hin, daß Du eine Windows-Appliktion erstellt hast. Der Quellcode ist aber für eine Konsolenanwendung.

Und es heißt int main.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.09.2004, 16:05 Uhr
Chaos



thx für die Hilfe. Es läuft nun.
Das mit dem

Nichtaufgeloestes externes Symbol _WinMain

hab ich aufgrund des Links den Virtual oben gepostet hat schon lösen können.
Trotzdem danke.

MfG
Chaos
 
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: