String* -> u_long
-
Hallo Leute......
ich habe ein IP Address als String* oder als Byte[], und sie möchte ich als u_long (oder unsigend long) haben, aber ich kriege es nicht hin
IPAddress* IPList[] = siteIPHostEntry->AddressList; Object* o = IPList->Item[0];//in o ist meine IP String* siteIP = o->ToString();//hier als String*, Console::WriteLine(siteIP); //oder auch folgendes Byte ip[] = IPList[0]->GetAddressBytes();//hier als Byte[]Hat Jemand eine Idee??
Danke
-
Sieht aus wie Java?

-
Original erstellt von <blup>:
Sieht aus wie Java?

ich arbeite mit Managed C++!
-
dann hat das hier nichts zu suchen

-
Hi!
Ich habe nicht verstanden was Du machen willst. Eine IP besteht doch aus mehreren Teilen.
Daraus willst Du eine einzige long machen ? Dann müsstest Du einfach die punkte aus den String filtern.
Ansonsten müsstest Du 4 long machen (wobei long etwas übertrieben groß wäre).
Beschreib bitte noch mal was Du machen möchtest.
-
ich arbeite mit Managed C++!
Dann ist das ganze im VC-Forum wohl besser aufgehoben.
Wie man in Standard-C++ ein String in eine Zahl wandelt, steht in den FAQs ausführlich erklärt:
Einmal Zahl nach String und zurück
-
Original erstellt von Knuddlbaer:
Ich habe nicht verstanden was Du machen willst.Hi,
also, aus den oben gezeigten Methoden bekomme ich eine IPAdresse (in der Format x.x.x.x) als ein String* (bzw. Byte[]). Nun habe ich eine andere Funktion, die eine IPAdresse bekommt, aber als u_long. Wie kann ich jetzt aus String* ein u_long machen? es gibt übrigens eine Funktionu_long inet_addr(const char*)aber mit ihr kann ich nicht weiterkommen wegen char*.
-
Hm, String* sagt mir nichts und BYTE[] so direckt auch nichts.
Schau mal ob Du mit
inet_addr( static_cast<char *>(IPList->Item[0]) );
weiterkommst.
-
Original erstellt von Knuddlbaer:
**inet_addr( static_cast<char *>(IPList->Item[0]) );
**das hat leider nicht geklappt:
**error C2440: 'static_cast' : cannot convert from 'System::Object __gc *' to 'char *'
**aber das finde ich komisch, weil ich ein Object* habe, und es muss einen Weg geben, um dieses Object* zu irgendwas anderes umwandlen zu können.
-
Gibts vllt. eine Methode des Objects die eine umwandlung erlaubt ? toString oder sowas in der art ?
Mit was genau programmierst Du denn ?
-
Original erstellt von Knuddlbaer:
**Gibts vllt. eine Methode des Objects die eine umwandlung erlaubt ? toString oder sowas in der art ?
**Das ist genau was ich oben gemacht habe:
String* siteIP = o->ToString();in diesem Object steckt die IP Adresse, und was ich habe ist ein String*, und deshalb finde ich keine Weise, aus diesem Pointer ein u_long zu machen
-
Probier mal ToCharArray ... da bekommst du allerdings alles als Unicode.