Fremde CPING KLasse eingebunde, aber Aufruf klappt nicht



  • Hallo,

    Leider gibt es keine Doku über diese Structure 😞 Habe jetzt versucht das so einzubinden wie du sagtest und bekomme dann folgenden Fehler:

    error C2352: 'CPing::PingUsingWinsock' : illegal call of non-static member function

    Hm...liegt das jetzt am Aufruf oder hab ich da noch was vergessen ?

    thx
    ray



  • Ja, die Funktion ist nicht static 😉
    also

    CPingReply pingrep; 
    CPing myPing;
    bool online=myPing.PingUsingWinsock("10.29.2.254", pingrep);
    

    Grüße Rapha



  • Hi Rapha,

    lange nix gehört 🙂 also jetzt klappt es *halbwegs* . Ich kann die Funktion nun aufrufen und meine bool onlie Variable wird auch mit TRUE oder FALSE gefüllt , aber diese Struktur pingresult wird nicht geüllt. Sprich sowohl ReplyAdress, RTT und Status, bleib "0" wenn ich mir das im Debugger anschau. Eigentlich sollte da die IP adresse, die Zeit des Pings und ebenfalls "TRUE oder FALSE" rein :-?

    Hast Du eine Idee an was das liegen kann ?

    Hab mal kleinen Teil vom Quellecode hier

    struct CPingReply
    {
    //Constructors / Destructors
      CPingReply();
    
    //Member variables
    	in_addr	 Address;              //The IP address of the replier
    	unsigned long RTT;             //Round Trip time in Milliseconds
      unsigned long EchoReplyStatus; //here will be status of the last ping if successful
    };
    

    weiß nicht obs was bringt 🙂

    thx
    ray



  • Hm, der Syntax ist korrekt...
    Wo hast du die Klasse denn her?



  • Die Klasse ist von eonem codeguru Mitglied bereitgestellt worden, kann man unter http://www.naughter.com/ herunterladen. Heißt da glaub CPig 1.3.5 oder so

    ray



  • Ich rate mal...
    Hast du die Sockets mit WSAStartup initialisiert?

    Grüße Rapha



  • Ähm nein hab ich nicht 🤡

    ..aber davon steht in der Readme nix drin...das ding ist anscheinend sofort einsatzfähig so wie ich das verstehe 😞 HAst Du grad ein Tutorial oder was parat wo ich mir das mit dem WSAStartup anschauen kann 🙂 ?

    thx
    ray



  • Hi,

    schau dir mal die mitgelieferte Beispielanwendung an.

    Den Code kannst du 1 zu 1 übernehmen 😉

    Grüße Rapha



  • Hallo Rapha 🙂

    So ich habe jetzt mal den Teil hier aus der Anwendung übernommen

    WSADATA wsa;
    if (WSAStartup(MAKEWORD(2, 0), &wsa) != 0){
          MessageBox("Failed to initialize Winsock 2 Stack");
          return false;
    }
    
    ...meine Ping Funktion....
    
    WSACLeanup();
    

    Jedoch ändert das nix dara, daß diese RTT und anderen Felder der pr Struktur *leer* bleiben 😞 Ich habe auch schon beide Funktionen getestet die man aufrufen kann: PingUsingICMP und Ping UsingWinsock...bei beiden der gleiche Effekt. Oder muß ich da noch mehr CoOde übernehmen ?

    Danke
    ray



  • Funktioniert denn die Beispielanwendung (änder sie ein bisschen ab) denn mit deinen Parametern (d.h. ip-Adresse, port, blablabala)?

    Grüße Rapha


Anmelden zum Antworten