Тема: RPD_DialogResponse
Показать сообщение отдельно

  #3  
Старый 02.08.2022, 21:25
Unknown_251
Новичок
Регистрация: 09.04.2022
Сообщений: 19
С нами: 2156817

Репутация: 3
По умолчанию

Объясни это:

bs.Write(static_cast(std::strlen(text)));

bs.Write(text, std::strlen(text));

Почему два раза была записана длина текста в BitStream. Или во втором случае нужно указать сколько именно символов текста нужно записать?

В остальном спасибо.

Цитата:
Сообщение от sc6ut  

C++:





Код:
void
send_dialog_responce
(
std
::
uint16_t
id
,
std
::
uint8_t
responce
,
std
::
uint16_t
list_item
,
const
char
*
text
)
{
BitStream bs
;
bs
.
Write
(
id
)
;
bs
.
Write
(
responce
)
;
bs
.
Write
(
list_item
)
;
bs
.
Write
(
static_cast

(
std
::
strlen
(
text
)
)
)
;
bs
.
Write
(
text
,
std
::
strlen
(
text
)
)
;
SF
->
getRakNet
(
)
->
SendRPC
(
RPC_DialogResponse
,
&
bs
)
;
}

Что то не хочет сервер (OnDialogResponse) обрабатывать такой запрос. Что опять не так?
 
Ответить с цитированием