Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > C/C++: Сетевое программирование > recv POP3 |
Автор: vtg 10.07.09, 14:41 |
Почему после работы следующего кода MessageBox показывает кракозяблики? <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> CString szUser, szBuffer; . . . szUser=_T("USER XXXXXX@mail.ru"); const TCHAR* pUser = szUser.GetBuffer(); send(hSocket, (const char *)pUser, szUser.GetLength(), 0); TCHAR* pBuffer = szBuffer.GetBuffer(256); int dwRet = recv(hSocket, (char *)pBuffer, 256,0); MessageBox(0, szBuffer.GetBuffer(), 0,MB_OK); |
Автор: Алексей_Л 10.07.09, 20:53 |
szBuffer нигде не инициализируется, ты же recv'ом в pBuffer пишешь, а в MessageBox() отображаешь szBuffer! P.S. Полезный совет: не мешай MFC-строки с си-строками, где это не нужно, это и привело к путанице |
Автор: vtg 16.07.09, 09:52 |
А почему, тогда, так <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> CString szUser, szBuffer; . . . szUser=_T("USER XXXXXX@mail.ru"); send(hSocket, (const char *)szUser.GetBuffer(), szUser.GetLength(), 0); int dwRet = recv(hSocket, (char *)szBuffer.GetBuffer(256), 256,0); MessageBox(0, szBuffer.GetBuffer(), 0,MB_OK); MessageBox показывает то же? |
Автор: Alexandoros 16.07.09, 10:28 |
Цитата If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CSimpleStringT member methods. |