Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.142.198.129] |
|
Сообщ.
#1
,
|
|
|
Почему после работы следующего кода MessageBox показывает кракозяблики?
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); |
Сообщ.
#2
,
|
|
|
szBuffer нигде не инициализируется, ты же recv'ом в pBuffer пишешь, а в MessageBox() отображаешь szBuffer!
P.S. Полезный совет: не мешай MFC-строки с си-строками, где это не нужно, это и привело к путанице |
Сообщ.
#3
,
|
|
|
А почему, тогда, так
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 показывает то же? |
Сообщ.
#4
,
|
|
|
Цитата If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CSimpleStringT member methods. |