Was ist da Verkehrt ??
-
Hi, sorry ich glaub ich bin zu dumm dazu .
typedef std::basic_string< TCHAR > tstring; tstring text = TEXT(string(buf).substr(0,empfBytes).c_str()); MessageBox(NULL,text.c_str();,TEXT("Server Message"),MB_OK);
So dass kann doch nicht sein etwa 7 Fehler.
-
Und so kommt Lbuf nich deklarierter Bezeichenr
typedef std::basic_string< TCHAR > tstring; tstring text = TEXT(buf); MessageBox(NULL,text.c_str(),TEXT("Server Message"),MB_OK);
-
Wie Werner Salomon schon sagte, das TEXT-Makro ist für Stringliterale gedacht. Du hast zwar nicht geschrieben, was buf ist, aber ein Stringliteral ist es jedenfalls nicht.
-
Hi hier dass moechte ich damit Anstellen
do { char buf[1024]; empfBytes = recv(connectedSocket,buf,1024,0); if(string(buf).substr(0,empfBytes) != "shutdown") { typedef std::basic_string< TCHAR > tstring; tstring text = TEXT(buf); MessageBox(NULL,text.substr(0,empfBytes).c_str(),TEXT("Server Message"),MB_OK); }break; } while(a!=5);
Die ueber den Socket empfangegnen char Bytes moechte ich ganz einfach in einer Message Box ausgeben.
-
manchmal sind die Dinge einfacher als man glaubt
do { char buf[1024]; const int empfBytes = recv( connectedSocket, buf, sizeof(buf)-1, 0 ); buf[empfBytes] = char(0); // String-Ende sicher setzen if( string(buf) != "shutdown" ) { MessageBox( NULL, buf, TEXT("Server Message"), MB_OK ); } else break; } while( a!=5 ); // was ist 'a'?
Sollte funktionieren, solange Du die Applikation ohne Unicode übersetzt und nur ASCII-Daten also lesbare Zeichen über die Socket--Schnittstelle reinkommen.
Gruß
Werner
-
Leider nicht , es gibt da noch ein Problemchen :-
do { char buf[1024]; const int empfBytes = recv(connectedSocket,buf,sizeof(buf)-1,0); buf[empfBytes] = char(0); if(string(buf).substr(0,empfBytes) != "shutdown") { cout << string(buf).substr(0,empfBytes); MessageBox(NULL,buf,TEXT("Server Message"),MB_OK); }break; } while(a!=5);
Fehler 1 error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'char [1024]' in 'LPCWSTR' nicht möglich c:\dokumente und einstellungen\admin\desktop\loadbg\socketserver\socketserver\main.cpp 74
-
Wie kann ich machen dass nich Unicode uebersetzt wird ??
Ich arbeite mit microsoft visual c++.
-
Werner Salomon schrieb:
Sollte funktionieren, solange Du die Applikation ohne Unicode übersetzt
Ich arbeite mit microsoft visual c++.
Welche Version genau?
-
Werner Salomon schrieb:
Sollte funktionieren, solange Du die Applikation ohne Unicode übersetzt ..
und wer lesen kann, ist im Vorteil
Um diesen String in die MessageBox zu schreiben musst Du ihn erst nach Wide-Character konvertieren.
do { char buf[1024]; const int empfBytes = recv( connectedSocket, buf, sizeof(buf)-1, 0 ); buf[empfBytes] = char(0); // String-Ende sicher setzen if( string(buf) != "shutdown" ) { USES_CONVERSION; MessageBox( NULL, A2T(buf), TEXT("Server Message"), MB_OK ); } else break; } while( a!=5 ); // was ist 'a'?
Zu den Details frag' bitte im MFC-Forum nach. .. und lass die substr-Aufrufe weg; in diesem Fall sind die überflüssig.
Gruß
Werner
-
@Werner Salomon
Funktioniert leider nicht
Fehler 1 error C2065: 'USES_CONVERSION': nichtdeklarierter Bezeichner c:\dokumente und einstellungen\admin\desktop\loadbg\socketserver\socketserver\main.cpp 73 Fehler 2 error C3861: "A2T": Bezeichner wurde nicht gefunden. c:\dokumente und einstellungen\admin\desktop\loadbg\socketserver\socketserver\main.cpp 74
Microsoft Visual C++ 2005
-
Meine Loesung die Leider das Programm zum abstürtzen bringt:
wchar_t* text; mbstowcs(text,buf,1024); MessageBox(NULL,text,TEXT("Server Message"),MB_OK);
-
Sei doch nicht so unselbstständig!
Wenn der dir so ne Fehlermeldung raushaut ist es ja wohl das mindeste mal eben selber in die MSDN zu schauen.
Was dir fehlt ist nen include von atlconv.h.
A2W ist aber MFC Kram.Ist das überhaupt ne MFC Anwendung?Bei VS 2005 sind die Projekte per default auf Unicode eingestellt.
Das kannst du unter:
Projekt->Eigenschaften->Konfigurationseigenschaften->Allgemein ändern.
Einfach unter Projektstandards->Zeichensatz "nicht festgelegt" auswählen.
Damit läufst du aber nur vor deinem Problem weg.....und wer wegläuft ist feigeMfG Spacelord
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.