Auch std::string zu const char *
-
Hi Leute ich hab ein ähnliches problem wie noha ich will eine datei über das internet versenden jedoch geht das nicht weil vc++ 2005 mir folgenden fehler bringt
c:\dokumente und einstellungen\albert\eigene dateien\programmieren\server + keylogger 2\server2\server2.cpp(186) : error C2664: 'send': Konvertierung des Parameters 2 von 'std::string' in 'const char *' nicht möglich
Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werdenstd::string TempString = ""; //in TempString wird geschrieben!!! ... rc=send(Socket,TempString,strlen(TempString),0);send() erwartet jedoch folgende parameter:
int send(
SOCKET s,
const char* buf,
int len,
int flags
);
wie kann ich also string in const char * umwandeln?
Albert
-
Hi,
rc=send(Socket,TempString.c_str (),strlen(TempString),0);Immer c_str () anhängen, das wandelt einen string in const char * um

MfG mikey.
-
std::string string_temp; // wird automatisch mit "" initialisiert ;) // ... rc = send(hSocket, string_temp.c_str(), string_temp.length(), 0);und length gibt es da auch noch ...
-
Joah, aber length, der Compiler ist da sehr penibel, was Rechtschreibung angeht

-
OK danke das funktioniert
ich hab noch ein Problemm:c:\dokumente und einstellungen ... \program.cpp(62) : warning C4996: 'strcpy' wurde als veraltet deklariert
Meldung: "This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details."
c:\dokumente und einstellungen ... \program.cpp(63) : warning C4267: 'Argument': Konvertierung von 'size_t' nach 'int', Datenverlust möglichstrcpy(buf2,"Fehler: startWinsock, fehler code:"); rc=send(connectedSocket,buf2,strlen(buf2),0);diese warnungen kommen bei meinem programm jetzt bestimmt 10 mal
Wie kann ich diese beheben?
-
std::string item("Fehler: startWinsock, fehler code:"); rc=send(connectedSocket, item.c_str(), item.length(), 0);?!?!??!
-
albertk13 schrieb:
Wie kann ich diese beheben?
#if defined(_MSC_VER) && (_MSC_VER >= 1400) #ifndef _SCL_SECURE_NO_DEPRECATE #define _SCL_SECURE_NO_DEPRECATE // disable deprecated warnings (C4996) for "unsafe" STL usage (e.g. use of unchecked iterators) #endif #ifndef _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_DEPRECATE // disable deprecated warnings (C4996) for "unsafe" CRT functions #endif #endif // _MSC_VER >= 1400
-
(D)Evil schrieb:
std::string item("Fehler: startWinsock, fehler code:"); rc=send(connectedSocket, item.c_str(), item.length(), 0);?!?!??!
Jo, das ist besser als "no keyboard detected. press F1 to continue."
