tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
3535
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Rodney Rodney ist offline Mitglied Bronze
    Registriert seit
    Oct 2003
    Beiträge
    48
    Hallo Leute,
    ich habe einige Probleme beim Benutzen der ICQ API.
    Ich wollte erstmal eine einfache Konsolenanwendung schreiben um mich mit der API vertraut zu machen. Das ist dabei rausgekommen:


    #include <iostream.h>
    #include <windows.h>
    #include "ICQAPIInterface.h"



    void main(void)
    {
    bool Ergebnis;

    cout << "ICQ Fernsteuerung V 1.01 Alpha-Status!\n \n";



    Ergebnis = ICQAPICall_SetLicenseKey("Daniel Penning", "MEIN PW", "MEIN KEY");

    if (Ergebnis)
    {
    cout << "Login... erfolgreich\n";
    }else
    {
    cout << "Login... fehlgeschlagen!\n";
    }


    }


    Aber schon diese erste Startfunktion scheitert bei mir immer. Was habe ich falsch gemacht. Welche Funktionen muss ich statt dieser 1. noch aufrufen damit ich einfache Messages verschicken kann?
    Es kommt kein Compilerfehler (ich habe auch alles richtig eingebunden, die Header etc...) nur gibt die funktion eben immer false zurück...

    Vielen Dank im Vorraus
     

  2. #2
    Thomas Kuse Thomas Kuse ist offline Mitglied Rubin
    Registriert seit
    Aug 2001
    Beiträge
    1.411
    Du musst doch vorher auf jeden Fall noch eine Server-Verbindung aufbauen.
    (z.B. login.icq.com:5190)

    Lies Dir mal die Doku dazu durch!
     

  3. #3
    Rodney Rodney ist offline Mitglied Bronze
    Registriert seit
    Oct 2003
    Beiträge
    48
    also, die Doku habe ich mir durchgelesen da stand nichts von einer Server-Verbindung obwohl das mir jetzt auch irgendwie logisch erscheint

    wie kann man denn in c++ eine Serververbindung aufbauen? bin halt noch ziemlicher Anfänger

    Trotzdem erstmal danke
     

  4. #4
    Thomas Kuse Thomas Kuse ist offline Mitglied Rubin
    Registriert seit
    Aug 2001
    Beiträge
    1.411
    Eine einfache Socket-Verbindung wird dir bestimmt nicht grossartig weiterhelfen, irgendwie muss Du den Verbindungs-Handle ja auch an die ICQ-API weitergeben.
    Da gibt es sicherlich eine bestimmte Fuktion dafür.

    Gibts die Doku auch online? Ich find die irgendwie nicht, ohne mich bei ICQ registrieren zu müssen.
     

  5. #5
    Rodney Rodney ist offline Mitglied Bronze
    Registriert seit
    Oct 2003
    Beiträge
    48
    nein die dokumentation gibts leider nicht online, du musst dich erst registrieren dann bekommst du den Code und die Doku.
     

  6. #6
    Rodney Rodney ist offline Mitglied Bronze
    Registriert seit
    Oct 2003
    Beiträge
    48
    kann mir sonst keiner helfen?
    wie baut man eine serververbindung auf?
     

  7. #7
    TheSmile TheSmile ist offline Mitglied
    Registriert seit
    Dec 2003
    Ort
    F-Dorf
    Beiträge
    23
    Hi Rodney,
    ich wollte Dein Programm einmal soweit ausprobieren, aber es funktioniert bei mir leider nicht.
    Ich bekomme folgende Fehlermeldungen:

    ICQtest2.obj : error LNK2001: Nichtaufgeloestes externes Symbol "int __stdcall ICQAPICall_SetLicenseKey(char *,char *,char *)" (?ICQAPICall_SetLicenseKey@@YGHPAD00@Z)
    Debug/ICQtest2.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    Was kann ich da machen?
    Ich bin ein Einsteiger in diesem Thema, und kann mir deshalb auch überhautp nicht denken, was ich machen könnte.
    Kann es daran liegen, dass ich einen Umlaut in meinem Namen habe an der Stelle NAME?
    ICQAPICall_SetLicenseKey("NAME", "MEIN PW", "MEIN KEY");

    Für Hilfe bin ich immer dankbar,
    MfG
    Norbert
     

  8. #8
    Rene Albrecht Rene Albrecht ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Hamburg
    Beiträge
    125
    Original geschrieben von Rodney
    nein die dokumentation gibts leider nicht online, du musst dich erst registrieren dann bekommst du den Code und die Doku.
    Hi Rodney,

    wie sollen wir Dir helfen, wenn wir (ohne Registrierung) keinen Zugriff auf die Doku bekommen?

    Gruß

    Nachtrag: habe eben mal ein paar Infos durchstöbert. Du scheinst Dich zu keinem Server explizit verbinden zu müssen! Hast Du den ICQ-Client nebenbei laufen? Wenn ich einige Postings im Netz richtig gedeutet habe, könnte das ICQAPICall_SetLicenseKey darüber die Verifizierung machen.

    Sonst würde ich spontan vermuten, dass Dein Username/Passwort/LicenseKey nicht stimmt- aber daran wird's wohl nicht liegen...
    Geändert von Rene Albrecht (16.12.03 um 13:17 Uhr)
     

  9. #9
    com com ist offline Mitglied Bronze
    Registriert seit
    Dec 2003
    Ort
    Meppen / Flensburg
    Beiträge
    26
    Original geschrieben von TheSmile
    Hi Rodney,
    ich wollte Dein Programm einmal soweit ausprobieren, aber es funktioniert bei mir leider nicht.
    Ich bekomme folgende Fehlermeldungen:

    ICQtest2.obj : error LNK2001: Nichtaufgeloestes externes Symbol "int __stdcall ICQAPICall_SetLicenseKey(char *,char *,char *)" (?ICQAPICall_SetLicenseKey@@YGHPAD00@Z)
    Debug/ICQtest2.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    Was kann ich da machen?
    Ich bin ein Einsteiger in diesem Thema, und kann mir deshalb auch überhautp nicht denken, was ich machen könnte.
    Kann es daran liegen, dass ich einen Umlaut in meinem Namen habe an der Stelle NAME?
    ICQAPICall_SetLicenseKey("NAME", "MEIN PW", "MEIN KEY");

    Für Hilfe bin ich immer dankbar,
    MfG
    Norbert
    Du musst die Libary natürlich mitlinken
    Ausgegangen vom MSVC:

    - ALT + F7 drücken
    - Karteireier : Linker
    - und dort "icqmapi.lib" eintragen, thats it
     

  10. #10
    com com ist offline Mitglied Bronze
    Registriert seit
    Dec 2003
    Ort
    Meppen / Flensburg
    Beiträge
    26
    So, ich hab einfach mal die Doku angehängt...
    Angehängte Dateien Angehängte Dateien
     

  11. #11
    TheSmile TheSmile ist offline Mitglied
    Registriert seit
    Dec 2003
    Ort
    F-Dorf
    Beiträge
    23
    Hi,
    und danke erstmal für den Tipp, bei mir läuft das Programm jetzt.

    Leider hat sich ein weiteres Problem ergeben:

    Die ICQ API hat die tolle Funktion über ICQAPICall_SendMessage(ICQ-Nr, "test");
    eine Nachricht vom eigenen Programm aus zu versenden.

    Das Problem für einen automatischen Ablauf des Ganzen ist, dass sich beim Aufruf dieser Funktion nur das Messagefenster von ICQ mit dem geschickten Text "test" öffnet, dieser Text aber erst bei Klicken auf den SEND Button bzw. drücken von STRG + RETURN auch verschickt wird.

    Kann ich diese Tastenkombination in C++ simulieren und direkt mit "test" mitschicken, so dass die Nachricht direkt versendet wird?

    MfG
    TheSmile
     

  12. #12
    com com ist offline Mitglied Bronze
    Registriert seit
    Dec 2003
    Ort
    Meppen / Flensburg
    Beiträge
    26
    ja schicke eine sekunde später ein:

    SendMessage(WM_KEYDOWN,VK_RETURN);

    das sollte helfen...


    Aber kannst du mir bitte sagen wie du das mit
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    if(ICQAPICall_SetLicenseKey(name,password,code))
    {
        AfxMessageBox("TRUE");
    }
    else
    {
        AfxMessageBox("FALSE");
    }
    hinbekommen hast?
     

  13. #13
    TheSmile TheSmile ist offline Mitglied
    Registriert seit
    Dec 2003
    Ort
    F-Dorf
    Beiträge
    23
    Hi,
    mal wieder für die schnelle Antwort.

    @com: Hast Du Dich mal bei ICQ registrieren lassen?

    ICQAPI

    Wenn Du das machst, bekommst Du zu Deinem Namen und Deinem gewählten Passwort einen Key per email zugeschickt.
    Dies baust Du dann einfach ein.

    Ich bin jetzt dort seit 3 Tagen registriert, und habe auch bisher keine nervige Werbung oder sonst irgendetwas bekommen.

    Ansonsten brauchst Du natürlich auch die sende Funkion von ICQ, um eine Nachricht zu senden, dies geht mit

    ICQAPICall_SendMessage(int iUIN, char *pszMessage);


    Was für eine Fehlermeldung bekommst Du denn, wenn Du Dein gezeigtes Programm starten willst?

    MfG
    TheSmile
     

  14. #14
    com com ist offline Mitglied Bronze
    Registriert seit
    Dec 2003
    Ort
    Meppen / Flensburg
    Beiträge
    26
    jo sicher, ohne regestrierung bekommt man ja auch keine api!

    Also name,password,code sind bei mir nur variable in denne meine daten stehen.
    ich bekomme einfach immer FALSE zurückgeliefert und verstehe nicht wieso..
     

  15. #15
    TheSmile TheSmile ist offline Mitglied
    Registriert seit
    Dec 2003
    Ort
    F-Dorf
    Beiträge
    23
    Hi,
    es ist komisch, dass es nich geht, aber ich muss dazu sagen, dass ich mich z.B. einfach nur mit Vornamen habe registrieren lassen, und auch somit keine Umlaute mehr im Namen hatte, und auch keine Leerzeichen.

    Hast Du darauf geachtet, dass Dein Passwort genau 8 Stellen hat? Dies wird bei der Registrierung nämlich extra als Zahl angegeben?

    Mehr kann ich momentan leider auch nicht zu sagen, sorry.

    Was anderes:
    Dein Tipp mit SendMessage(WM_KEYDOWN,VK_RETURN); geht leider nicht ... es werden keine 2 Parameter akzeptiert. Soweit ich weiss muss man 4 übergeben, aber das Handling hab ich einfach noch nicht raus, könntest Du mir da weitere Hilfe geben?

    MfG
    TheSmile
     

Ähnliche Themen

  1. Abbrüche bei USB-Benutzung
    Von Markus Kocur im Forum Microsoft Windows
    Antworten: 2
    Letzter Beitrag: 01.10.08, 21:37
  2. Benutzung von InstanceOf
    Von MiMi im Forum Java
    Antworten: 4
    Letzter Beitrag: 14.11.07, 15:20
  3. Benutzung von Normalen 9.5
    Von saschahaeusler im Forum Cinema 4D
    Antworten: 0
    Letzter Beitrag: 15.01.06, 19:09
  4. [C++ OOP] Benutzung von Klassen bzw. (STL)
    Von Anime-Otaku im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 28.09.05, 14:22
  5. Benutzung von fwrite
    Von DaMan im Forum C/C++
    Antworten: 13
    Letzter Beitrag: 24.05.05, 12:24