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. |