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

alsoCPingReply 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