
06.05.2024, 00:26
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Пытаюсь перевести строку из CP1251 в UTF8 для рендера в ImGUI, но результата 0 (в ответ получаю знаки вопроса):
C++:
Код:
auto
drawlist
=
ImGui
::
GetBackgroundDrawList
(
)
;
std
::
string huy
=
"huy"
drawlist
->
AddText
(
ImVec2
{
1000
,
100
}
,
0xFFFFFFFF
,
utils
::
convertCP1251ToUTF8
(
huy
.
c_str
(
)
)
)
;
C++:
Код:
std
::
string utils
::
CP1251ToUTF8
(
const
char
*
str
)
{
std
::
string res
;
int
result_u
,
result_c
;
result_u
=
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
0
,
0
)
;
if
(
!
result_u
)
return
0
;
wchar_t
*
ures
=
new
wchar_t
[
result_u
]
;
if
(
!
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
ures
,
result_u
)
)
{
delete
[
]
ures
;
return
0
;
}
result_c
=
WideCharToMultiByte
(
CP_UTF8
,
0
,
ures
,
-
1
,
0
,
0
,
0
,
0
)
;
if
(
!
result_c
)
{
delete
[
]
ures
;
return
0
;
}
char
*
cres
=
new
char
[
result_c
]
;
if
(
!
WideCharToMultiByte
(
CP_UTF8
,
0
,
ures
,
-
1
,
cres
,
result_c
,
0
,
0
)
)
{
delete
[
]
cres
;
return
0
;
}
delete
[
]
ures
;
res
.
append
(
cres
)
;
delete
[
]
cres
;
return
res
;
}
|
|
|