Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
 
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
#1

Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String - C++

29.10.2015, 00:27. Просмотров 841. Ответов 30

Есть строка Glib::ustring, пытался её конвертировать в sf::String, и вроде бы всё работает без особых костылей, но как добрался до кириллицы, нифига ничего не работает.
Придумал такой костыль:
C++
1
2
3
4
5
6
7
sf::String convert_from_ustring (const Glib::ustring& source_string) 
{
    static std::wstringstream ss ;
    ss.clear() ;
    ss << source_string ;
    return sf::String(ss.str()) ;
}
У кого есть винда (под Linux'ами вроде пашет, но тоже лучше потестить) с соответствующими библиотеками (sfml и glibmm) просьба протестировать этот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <fstream>
#include <sstream>
#include <SFML/Graphics.hpp>
#include <glibmm.h>
 
 
namespace sfml_tools
{
    //TODO: multithread version
    sf::String convert_from_ustring (const Glib::ustring& source_string)
    {
        static std::wstringstream ss ;
        ss.clear() ;
        ss << source_string ;
        return sf::String(ss.str()) ;
    }
}
 
 
 
 
int main()
{
    using sfml_tools::convert_from_ustring ;
    //std::locale::global(std::locale("ru_RU.UTF-8"));
    std::ifstream file("input.txt") ; //Файл в кодировке utf-8 с русским текстом
    if ( !file.is_open() )
        return -1 ;
 
    std::string line ;
    std::getline ( file , line ) ;
 
    Glib::ustring u_str(line);
    sf::String s( convert_from_ustring(u_str) ) ;
 
    sf::RenderWindow wnd( sf::VideoMode( 800 , 600 ) , "SFML-tools library tests" ) ;
    wnd.setTitle(s);
 
    sf::Font fnt ;
    //Свой шрифт, поддерживающий кириллицу, поставьте
    if ( !fnt.loadFromFile("UbuntuMono-B.ttf") ) {
        return -1 ;
    }
 
    sf::Text txt ( s , fnt , 16 )  ;
    txt.setColor(sf::Color::White);
 
    while( wnd.isOpen() ){
        sf::Event event ;
        while( wnd.pollEvent( event ) ){
            if( event.type == sf::Event::Closed )
                wnd.close() ;
        }
        wnd.clear( sf::Color::Black ) ;
        wnd.draw(txt) ;
        wnd.display() ;
    }
}
Здесь цепочка преобразований std::string -> Glib::ustring -> sf::String.
Нормально ли выводится заголовок и текст в окне.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2015, 00:27     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String
Посмотрите здесь:
C++ Необходимо протестировать костыль
C++ Конвертирование float/int to string
Конвертирование из vector<string> в map C++
Glib.h в Windows C++
Асинхронные очереди Glib C++
В каких случаях необходимо включать include string C++
Компиляция с glib под виндой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
29.10.2015, 11:48     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #16
Цитата Сообщение от Croessmah Посмотреть сообщение
Что команда pkg-config --libs glibmm-2.4 в консоли выдает(без кавычек)?
команда не найдена выдаёт

У меня её и нету, наверное. Ща попробую поставить.
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
29.10.2015, 11:59     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #17
Цитата Сообщение от Croessmah Посмотреть сообщение
Что команда pkg-config --libs glibmm-2.4 в консоли выдает(без кавычек)?
Поставил. Вот что выдала:
Миниатюры
Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String  
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
29.10.2015, 12:03     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #18
Теперь всего 4 ошибки выдало, а не 34, как в прошлый раз. Но ругается на ту же строчку:
Миниатюры
Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String  
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
29.10.2015, 12:04     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #19
Croessmah, ты уже наверное 100 раз пожалел, что у меня помощи попросил
Прости меня, друг, как-то рукожопенько у меня всё это пока выходит.
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
29.10.2015, 16:21  [ТС]     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #20
Цитата Сообщение от gru74ik Посмотреть сообщение
ты уже наверное 100 раз пожалел, что у меня помощи попросил
глупо жалеть о своих решениях. Только настроение портить
Цитата Сообщение от gru74ik Посмотреть сообщение
Прости меня, друг, как-то рукожопенько у меня всё это пока выходит.
Всё нормально будет. Поставлю вечером виртуалку, отпишусь
Kastaneda
Форумчанин
Эксперт С++
4514 / 2856 / 228
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
30.10.2015, 13:17     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #21
gru74ik, в msys pacman используется? Это дефолтный менеджер или прикручивается?
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
30.10.2015, 13:39  [ТС]     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #22
Цитата Сообщение от Kastaneda Посмотреть сообщение
Это дефолтный менеджер или прикручивается?
по дефолту стоит
gru74ik
Модератор
Эксперт CЭксперт С++
4106 / 1751 / 197
Регистрация: 20.02.2013
Сообщений: 4,856
Записей в блоге: 21
30.10.2015, 13:45     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #23
Цитата Сообщение от Kastaneda Посмотреть сообщение
gru74ik, в msys pacman используется? Это дефолтный менеджер или прикручивается?
pacman дефолтный в msys2
Kastaneda
30.10.2015, 13:47
  #24

Не по теме:

круто, я в ArchLinux'е с ним одно время намучился, очень он сам себя обновлять не любил не умел

gru74ik
30.10.2015, 19:10
  #25

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
в ArchLinux'е с ним одно время намучился
ArchLinux, говорят, вообще из всех дистрибутивов GNU/Linux один из самых заморочных.

Kastaneda
30.10.2015, 19:16
  #26

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
ArchLinux, говорят, вообще из всех дистрибутивов GNU/Linux один из самых заморочных.
На самом деле один из самых простых. Самый замороченный Ubuntu и подобные. Простой пример - даже чтоб поставить тот же MySQL Ubuntu тут же в терминале создаст диалог, спросит пароль, еще что-нибудь и насует своих настроек в конфиг, которые ты потом руками будешь оттуда выкавыривать. Archlinux же молча поставит тебе MySQL с пустым конфигом, который ты потом как хочешь так и правишь. Простота в чистом виде

gru74ik
30.10.2015, 20:55
  #27

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
Простота в чистом виде
Ну видишь, кому-то надо "делай ровно то, что тебе сказали, нефиг отсебятину всякую пороть" (ArchLinux), а другому "фигачь отсебятину, но чтобы всё работало из коробки, не хочу разбираться во всех этих тонкостях" (Ubuntu).

DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
30.10.2015, 20:56     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #28
Цитата Сообщение от Croessmah Посмотреть сообщение
Нормально ли выводится заголовок и текст в окне.
Проверил. Нормально.

Пруф
Миниатюры
Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String  
Croessmah
Модератор
Эксперт CЭксперт С++
13056 / 7319 / 816
Регистрация: 27.09.2012
Сообщений: 18,055
Записей в блоге: 3
Завершенные тесты: 1
30.10.2015, 21:53  [ТС]     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #29
Цитата Сообщение от DrOffset Посмотреть сообщение
Проверил. Нормально.
проверяли вариант из первого поста или
Цитата Сообщение от Croessmah Посмотреть сообщение
Сделал так
???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2015, 02:11     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String
Еще ссылки по теме:
C++ Убрать костыль typedef
GLib-GObject-WARNING **: gsignal.c:2459: signal `expose-event' is invalid
Дедушка, а что это за костыль у тебя? C++
Memo->Lines[1] - что за тип? костыль? C++ Builder C++ Builder
C++ Конвертирование в C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
31.10.2015, 02:11     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String #30
Цитата Сообщение от Croessmah Посмотреть сообщение
проверяли вариант из первого поста
Да. Из первого поста.
Yandex
Объявления
31.10.2015, 02:11     Необходимо протестировать костыль. Конвертирование Glib::ustring в sf::String
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru