Преобразование типа int к PWCHAR

  • Автор темы Автор темы WmzBot
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

WmzBot

Постоялец
Участник
Старожил I степени
Сообщения
599
Розыгрыши
0
Решения
2
Репутация
68
Реакции
205
Баллы
1 075
Добрый день. Решил сделать вывод уровня персонажа в титул, если он использует визуальную броню. тип данных у титула PWCHAR, тип данных переменной nLevel - int. соответственно, делаю преобразование через reinterpret_cast , компилятор выдает предупреждение, о разных размерах типа данных при преобразовании, на выходе, естественно при включении визуальной брони, получаю краш сервера при отправке пакета userinfo. если же, я делаю титул такой же как ник, они имеют одинаковый тип данных, все проходит хорошо, титул становится как ник. Вот 2 кода, 1 устанавливает в титул ник, второй который должен выводить в титул Уровень.

C++:
        PWCHAR wTitle = va_arg(tag, PWCHAR); //инициализируем переменную
        if(pUser->pED->visualArmorUser.armorId > 0) //условие, усли одета визуальная броня
        {
            PWCHAR wNewTitle = pUser->pSD->wszName; //инициализируем переменную для нового титула = никнейм
            wTitle = wNewTitle; //устанавливаем переменной титул = значение переменной новый титул.
            /*s*/ Packet.WriteS(wTitle);                //отправляем пакет с новым титулом
            /*d*/ Packet.WriteD(va_arg(tag, DWORD));    //pledge_id
            /*d*/ Packet.WriteD(va_arg(tag, DWORD));    //pledge_crest_id
            /*d*/ Packet.WriteD(va_arg(tag, DWORD));    //ally_id
            /*d*/ Packet.WriteD(va_arg(tag, DWORD));    //ally_crest_id
        }


C++:
PWCHAR wTitle = va_arg(tag, PWCHAR); //инициализируем переменную

        if(pUser->pED->visualArmorUser.armorId > 0) //условие, усли одета визуальная броня

        {

            PWCHAR wNewTitle = reinterpret_cast<PWCHAR>(pUser->pSD->nLevel); //инициализируем переменную для нового титула = уровень персонажа

            wTitle = wNewTitle; //устанавливаем переменной титул = значение переменной новый титул.

            /*s*/ Packet.WriteS(wTitle);                //отправляем пакет с новым титулом

            /*d*/ Packet.WriteD(va_arg(tag, DWORD));    //pledge_id

            /*d*/ Packet.WriteD(va_arg(tag, DWORD));    //pledge_crest_id

            /*d*/ Packet.WriteD(va_arg(tag, DWORD));    //ally_id

            /*d*/ Packet.WriteD(va_arg(tag, DWORD));    //ally_crest_id
        }

собственно вопрос, как мне придумать костыль, чтобы полученный результат от переменной nLevel преобразовать в тип PWCHAR?
 

собственно вопрос, как мне придумать костыль, чтобы полученный результат от переменной nLevel преобразовать в тип PWCHAR?
C++:
Packet.WriteS(to_wstring(pUser->pSD->nLevel).c_str());
Как вариант.
 
только вот функция to_wstring(to_string) появилась в С++ 11, у меня более ранняя версия.

только вот функция to_wstring(to_string) появилась в С++ 11, у меня более ранняя версия.
извиняюсь, забыл библиотеку <string> заинклюдить. Прошу закрыть тему, Спасибо

xDarkDelux

 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Назад
Сверху Снизу