Показать сообщение отдельно

  #2283  
Старый 12.04.2018, 16:39
BlackKnigga
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами: 5441999

Репутация: 133


По умолчанию

Цитата:
Сообщение от ๖ۣۣۜШурик  

Не могу вот настроить кодировку в проекте с ImGUI, использую эти функции, но ничего не помогает...

C++:





Код:
string
to_utf8
(
const
char
*
str
)
{
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
;
}
string
to_cp1251
(
const
char
*
str
)
{
string res
;
int
result_u
,
result_c
;
result_u
=
MultiByteToWideChar
(
CP_UTF8
,
0
,
str
,
-
1
,
0
,
0
)
;
if
(
!
result_u
)
return
string
(
)
;
wchar_t
*
ures
=
new
wchar_t
[
result_u
]
;
if
(
!
MultiByteToWideChar
(
CP_UTF8
,
0
,
str
,
-
1
,
ures
,
result_u
)
)
{
delete
[
]
ures
;
return
0
;
}
result_c
=
WideCharToMultiByte
(
1251
,
0
,
ures
,
-
1
,
0
,
0
,
0
,
0
)
;
if
(
!
result_c
)
{
delete
[
]
ures
;
return
0
;
}
char
*
cres
=
new
char
[
result_c
]
;
if
(
!
WideCharToMultiByte
(
1251
,
0
,
ures
,
-
1
,
cres
,
result_c
,
0
,
0
)
)
{
delete
[
]
cres
;
return
0
;
}
delete
[
]
ures
;
res
.
append
(
cres
)
;
delete
[
]
cres
;
return
res
;
}

ImGui::Text(to_utf8("Какие проблемы?").c_str())

Ну и шрифт надо грузить с кириллицей
 
Ответить с цитированием